From 13726c57f69546eb9ae90c058bc8bc204805fdd3 Mon Sep 17 00:00:00 2001 From: krrong Date: Sun, 8 Oct 2023 00:40:14 +0900 Subject: [PATCH] =?UTF-8?q?[ALL]=20=EB=B2=84=EC=A0=84=202=20=EC=B6=9C?= =?UTF-8?q?=EC=8B=9C(versionName1.1.0)=20(#432)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: 안드로이드 프로젝트 폴더 생성 (#2) (#3) * feat: 안드로이드 프로젝트 초기 세팅 (#5) * chore: 안드로이드 프로젝트 폴더 생성 (#2) * feat: 안드로이드 프로젝트 초기 세팅 * chore: gitignore 수정 및 불필요한 파일 삭제 * feat: 프로젝트 초기 세팅 (#7) * fix: 초기 설정 삭제 (#10) * feat: 백엔드 프로젝트 초기 세팅 (#11) * feat: 프로젝트 초기 세팅 * chore: .DS_Store 파일 삭제 및 gitignore 추가 * chore: .DS_Store 파일 삭제 및 gitignore 추가 * chore: 패키지 구조 설정 (#12) * [BE] feat: 엔티티 설계 (#15) * chore: 프로퍼티 파일 수정 Co-authored-by: dooboocookie Co-authored-by: chaewon121 Co-authored-by: zillionme * feat: Member 엔티티 생성 Co-authored-by: dooboocookie Co-authored-by: chaewon121 Co-authored-by: zillionme * feat: Place 엔티티 생성 - Position 도메인 생성 Co-authored-by: dooboocookie Co-authored-by: chaewon121 Co-authored-by: zillionme * feat: Game 엔티티 생성 Co-authored-by: dooboocookie Co-authored-by: chaewon121 Co-authored-by: zillionme * feat: Position의 동등성 기능 추가 --------- Co-authored-by: dooboocookie Co-authored-by: chaewon121 Co-authored-by: zillionme * feat: 초기 resource 파일 세팅 (#16) * feat: DTO 생성 (#18) * feat: 위치를 나타내는 Dto 생성 * feat: 목적지를 나타내는 Dto 생성 * chore: gitkeep 파일 삭제 * feat: Domain 설계 및 생성 (#21) * refactor: 좌표를 나타내는 Dto 이름 변경 * feat: 좌표를 저장하는 도메인 클래스 생성 * feat: 목적지를 저장하는 도메인 클래스 생성 * feat: 도메인 repository 인터페이스 생성 * feat: 네이버 맵을 화면에 띄우는 기능 구현 (#23) * feat: 네이버 맵을 사용하기 위한 의존성을 gradle에 추가 * feat: manifest에 네이버 맵을 사용하기 위한 메타 데이터 추가 * feat: 액티비티 네이밍 변경, 네이버 맵을 화면에 띄우는 기능 구현 * chore: .gitignore 수정 * chore: 네이버 지도 사용을 위해 gradle.properties에 제티파이어를 추가하여 버전 차이 문제를 해결 * feat: 회원 인증 기능 구현 (#26) * feat: 회원정보 추출 기능 구현 * feat: 회원 인증 어노테이션 커스텀 구현 * feat: 인터셉터 추가 * refactor: argumentResolver 리팩토링 * feat: 설정정보 인터셉터 추가 * refactor: 회원 정보 조회 예외처리 중복 수정 * feat: 위치 권한 요청 기능 구현 (#27) * chore: repository 패키지 위치 이동 * feat: 모험시작 액티비티 생성 - 필요한 위치권한 Manifest에 등록 - 위치권한 요청 * design: UI관련 resource 추가 * feat: 게임 시작 기능 액티비티 추가 및 권한 요청 기능 구현 * design: 문자열 strings 리소스화 * design: 배경 및 버튼 색상 변경 * feat: 네이버지도에서 현재 위치를 잡는 기능 구현 (#28) * feat: 위치 권한을 승인한 경우 모험 액티비티로 이동하는 기능 구현 * feat: 내 위치를 잡으면 트래킹하도록 기능 구현 * feat: isLocationButtonEnabled 활성화 구현 * feat: 장소 추천 기능 구현 (#29) * chore: 프로퍼티 파일 수정 * feat: 위치 기준으로 반경 거리내의 장소 추천 쿼리 작성 * feat: Game 엔티티 빈 생성자 추가 * refactor: 패키지명 수정 * chore: 더미 데이터 추가 * feat: Game 엔티티 생성 * feat: Place 서비스 계층 생성 feat: 장소 선정 로직 기능 구현 * feat: GameRepository 생성 * feat: Game 서비스 계층 생성 feat: 장소 선정 기능 구현 * feat: Place 응답 DTO 구현 * feat: Game 컨트롤러 계층 생성 * style: 코드 정렬 * feat: 목적지와 현재위치 사이 거리를 계산하여 사용자에게 보여주는 기능 구현 (#35) * feat: repository 목 구현체 생성 * feat: OnAdventureViewModel 생성 * refactor: 거리 반환값의 자료형을 Int로 수정 * feat: 목적지와 현재위치 사이 거리를 계산하여 사용자에게 보여주는 기능 구현 * feat: Coordinate를 받아 해당 위치에 좌표를 찍는 기능 구현 (#39) - 목적지를 임시로 상수처리 - 추후 목적지를 서버에서 받아 마커를 찍는 방식으로 수정 필요 * feat: 사진 버튼을 클릭하면 사진 다이얼로그를 띄우는 기능 구현 (#40) * design: close icon 추가 * feat: 화면에 관련된 유틸 파일과 메서드 생성 * design: OnAdventure 액티비티에서 사진을 보여주기 위한 다이얼로그 UI 구현 * feat: 목적지에 대한 사진을 띄워주는 DestinationPhotoDialog 구현 * refactor: LocationDialogFragment의 메서드를 DisplayUtil로 분리 * style: 코드 정렬 * feat: 생성시 액티비티로부터 사진을 받아오는 기능 구현 * design: 사진 아이콘 버튼 추가 * feat: 액티비티에서 사진 아이콘 버튼 클릭시 다이얼로그를 띄우는 로직 구현 * feat: 사진이 로딩중 문구 strings 리소스화 * feat: 뷰모델로부터 얻어온 사진을 넘기도록 로직 수정 * refactor: 다이얼로그 및 변수 네이밍 변경 * refactor: strings 리소스화 * refactor: 객체 네이밍 변경 * feat: 목적지에 도착 시 도착 버튼 활성화 기능 구현 (#41) * design: 비활성화 버튼 color resource 추가 * design: 버튼의 상태에 따라 버튼 UI가 변경 되는 selector 생성 * feat: 목적지 도달 시 모험 종료 버튼 활성화 기능 추가 * refactor: 기존에 있는 drawable 활용해 selector 생성 * refactor: 도착 버튼 string을 resource에 추가 * refactor: API 명세 변경으로 인한 기능 수정 (#43) * refactor: 조회 쿼리의 결과를 List로 받도록 수정 * feat: 인증 관련 예외 기능 추가 * feat: 게임 관련 예외 기능 추가 * feat: 장소 관련 예외 기능 추가 * feat: 회원 관련 예외 기능 추가 * feat: 수정된 API 명세에 맞춰 게임 서비스 로직 수정 * feat: 수정된 API 명세에 맞춰 게임 서비스 로직 수정 * feat: 수정된 API 명세에 맞춰 장소 서비스 로직 수정 * feat: 수정된 API 명세에 맞춰 회원 서비스 로직 수정 * feat: 수정된 API 명세에 맞춰 게임 서비스 로직 수정 * feat: 게임에 대한 응답 DTO 생성 * feat: 수정된 API 명세에 맞게 컨트롤러 수정 * feat: 수정된 API 명세에 맞게 컨트롤러 수정 * style: import문 최적화 * refactor: 기존 런타임 예외를 인증 커스텀 예외로 수정 * refactor: 사용하지 않은 메서드 삭제 * refactor: 상수 이름 변경 * refactor: final 키워드 추가 * refactor: @Transactional 어노테이션에 readOnly 속성 추가 * refactor: 패키지 수정 --------- Co-authored-by: kokodak * feat: 서버통신 초기세팅 (#44) * feat: Adventure 도메인 클래스 생성 * feat: Adventure 상태를 갖는 enum 클래스 생성 * feat: 기능 변경에 따른 repository 변경 * chore: 사진 다이얼로그 패키지 위치 변경 * feat: AdventureDto 클래스 생성 * feat: Dto와 domain 클래스간의 mapper 구현 * refactor: repository 이름 변경 * feat: repository 기능 변경으로 인한 mock repository 변경 * feat: retrofit service 인터페이스 생성 * feat: adventure ERROR 상태 클래스 추가 * feat: Repository 변경에 따른 ViewModel 변경 및 서버 통신 오류 처리 * feat: Retrofit 객체 생성 및 interceptor 구현 * chore: AdventureService 패키지 위치 변경 * feat: 목적지 도착 여부 확인 기능 구현 (#47) * feat: 좌표사이의 거리를 키로미터로 계산하는 로직 구현 * feat: 도착여부 판단 및 접근 권한 검증 기능 구현 * feat: 장소의 유효범위 여부 검증 구현 * feat: 게임 종료기능 api 구현 * refactor: 게임 관련 예외를 사용하도록 변경 * refactor: 인증 관련 예외 추가 및 적용 * style: final 키워드 추가 및 코드 정렬 * fix: 파라미터명 수정 * feat: 백엔드 ci workflows 초안 작성 (#49) * chore: step 이름 추가 (#50) * [BE] fix: 백엔드 ci workflows 초안 작성 (#51) * chore: step 이름 추가 * fix: default working directory 추가 * fix: working directory 상대경로로 변경 (#52) * chore: step 이름 추가 * fix: default working directory 추가 * fix: working directory 상대경로로 변경 * feat: 서버에 모험 시작을 요청하는 기능 구현 (#48) * refactor: AdventureRepository 수정 * feat: Coordinate 객체의 Domain to Dto 매핑 함수 생성 * feat: Result의 failure에서 사용할 나아가 팀만의 Throwable 생성 * feat: 서버통신이 성공적이지 않을 때에 대한 객체와 서버통신 코드를 단순화할 메서드 생성 * feat: AdventureRepository의 beginAdventure 함수 구현 * refactor: 코드 방식 변경 get() -> [] * feat: MockRepository의 beginAdventure 함수 구현 * refactor: 타입을 표현해줌 * feat: 실제 base url 등록 * feat: http 통신 허용 * fix: json 변환 과정 수정 * fix: TODO 주석처리 * feat: 코루틴 의존성 추가 * feat: 모험을 시작하는 서버통신 구현 * feat: 모험이 끝났을 때 서버에게 모험이 종료 됐음을 알려주는 기능 구현 (#53) * feat: 모험 종료 시 서버에게 데이터를 받아 올 Dto 생성 * feat: 모험 종료 시 서버에게 받아 온 Dto mapper 생성 * refactor: 데이터 반환 값 타입 변경 * feat: AdventureRepository의 endAdventure 구현 * feat: 모험 종료 시 서버와 통신해 현재 모험 상태를 받아온 후 상황에 맞게 분기 처리 해주는 기능 구현 * refactor: mock Repository의 endAdventure 함수 구현 * fix: onClick에서 사용된 함수에게 인자를 넣어 Databinding 오류 해결 * feat: 서버에서 목적지를 받아오는 기능 구현 (#54) * refactor: 게임 정보를 가져오는 서비스 수정 * feat: 서버에서 목적지를 받아오는 기능 구현 * fix: 목적지 도착 버튼 클릭 시 발생하는 오류 수정 (#56) * fix: RetrofitService Path 수정 * fix: Serializable 어노테이션 추가 * refactor: iteration 명칭 변경 및 타입 명시 제거 * feat: 안드로이드 프로젝트에 firebase 추가 (#75) * feat: 필요 없는 파일 삭제 잘못 올린 파일을 삭제합니다. * chore: gitignore 수정 (#78) * feat: 안드로이드 CI 자동화 (#77) * chore: ktlint를 위한 config 파일 추가 * chore: ci 자동화를 위한 yml 파일 추가 * style: ktlint에 걸린 코드 정렬 * chore: ci 자동화 json 파일 추가 * style: ktlint에 걸린 코드 정렬 * style: ktlint에 걸린 코드 정렬 * chore: ci 자동화 json 파일 추가 * style: ktlint에 걸린 코드 정렬 * style: ktlint에 걸린 코드 정렬 * chore: ci 자동화 파일 수정 * style: ktlint 규칙 변경에 따른 수정 * feat: 스플래시 화면에서 진행 중인 모험이 있는지 판단하고 분기 하는 기능 구현 (#58) * chore: apk 및 aab 추출을 위한 파일 * design: splash를 위한 스타일 생성 * feat: 레포지토리에 모험 상태를 통해 모험 목록을 받아오는 기능 추가 * feat: 모험 상태를 통해 모험목록을 받아오는 retrofit 인터페이스 작성 * feat: 모험 상태를 통해 모험 목록을 반환하는 레포지토리 기능 구현 * feat: 이전 액티비티로부터 OnAdventureActivity로 화면을 전환할때 필요한 인텐트를 반환하는 함수 작성 * feat: 스플래시 액티비티와 뷰모델(및 팩토리) 생성 - 스플래시에서 서버통신을 통해 현재 진행 중인 모험이 있는지 확인한다. - 현재 진행 중인 모험이 있다면 해당 모험과 함께 OnAdventureActivity로 이동한다. - 현재 진행 중인 게임이 없다면 BeginAdventureActivity로 이동한다. * feat: 화면간 데이터 이동을 위한 uiModel 생성 - gradle에 parcelize 플러그인 추가 - AdventureUiModel 및 Mapper 생성 - CoordinateUiModel 및 Mapper 생성 - DestinationUiModel 및 Mapper 생성 * feat: parcelable한 데이터를 인텐트로부터 받기 쉽게할 유틸 함수 작성 * feat: OnAdventureActivity가 열리는 두 가지 경우에 따라 모험을 지정 - 이미 모험이 진행 중이면 이전 화면으로부터 모험을 전달 받고 모험을 서버에 요청하지 않는다. - 진행 중인 모험이 없다면 서버로부터 모험을 요청한다. * refactor: OnAdventureActivity에서 Intent를 생성해주므로 해당 함수를 이용하도록 변경 * [AN] feat: registerForActivityResult 분기처리 기능 구현 (#72) * design: 대락적인 위치 권한만 허용됐을 시 보여줄 문구 string 리소스로 추가 * feat: Dialog 내에서 권한을 체크하여 대략적인 위치 권한이 있는 상태와 전혀 없는 상태를 구분하여 다른 문구를 보여주도록 구현 * feat: BeginAdventureActivity 권한 코드 수정 - 유저가 권한 요청을 허용 및 거절 했을 시 토스트 메시지로 즉각적인 피드백을 주도록 구현 - 함수 분리 - 다이얼로그 태그 상수화 * feat: BeginAdeventureActivity UI 변경사항 적용 (#71) * design: 랭크, 마이페이지, 업로드 아이콘 추가 * design: 기존의 background를 지정하고 tint로 색을 지정하는 방식은 elevation을 반영하지 못해 색이 있는 shape을 새로 생성함 * design: BeginAdventureActivity에서 사용될 style 생성 * design: BeginAdventureActivity xml 레이아웃 작성 * feat: AdventureResultActivity 구현 (#80) * design: 모험 결과 상태에 따른 스탬프 drawable 리소스 추가 * design: 모험 결과 페이지에 필요한 strings 리소스 추가 * feat: 모험 결과에 따라 다른 UI가 띄워지는 액티비티 구현 * fix: manifest 오류 수정 * feat: 3차 데모데이 엔티티 설계 (#84) * feat: BaseEntity 생성 * feat: Player 도메인 생성 * feat: Hint 도메인 생성 Co-authored-by: dooboocookie * feat: GameResult 도메인 생성 Co-authored-by: dooboocookie * style: import문 최적화 Co-authored-by: dooboocookie * feat: 스프링 부트 어플리케이션에 @EnableJpaAuditing 추가 Co-authored-by: dooboocookie * refactor: 게임 도메인 수정 Co-authored-by: dooboocookie * refactor: 장소 도메인 생성 Co-authored-by: dooboocookie * refactor: Score 도메인 생성 Co-authored-by: dooboocookie * refactor: Place에 BaseEntity 상속 추가 * refactor: Member에 BaseEntity 상속 추가 및 생성자 추가 --------- Co-authored-by: dooboocookie * feat: OnAdventureActivity UI 변경사항 적용 (#73) * design: OnAdventureActivity에서 사용하는 아이콘 추가 * rename: drawable 컨벤션 유지 * design: 색상 추가 * design: 원 형태의 백그라운드 추가 * design: 문구 변경 * feat: OnAdventureActivity UI 변경사항 적용 * feat: 서버로부터 받아온 목적지에 핀을 꽂는 기능 제거 * rename: 일관성을 위한 아이콘 이름 수정 * design: 하단 버튼 높이 통일 * design: 흰색 배경 drawable 생성 * design: 버튼 그림자 생성 * feat: 충돌 해결 * feat: 충돌 해결 * feat: 충돌해결 * [AN] feat: UploadActivity 구현 * chore: gitignore 수정 * design: 카메라, 좌표 아이콘 추가 * design: 출력 문구 추가 * design: 마진 사이즈 추가 * feat: UploadActivity 구현 * feat: UploadActivity의 인텐트를 가져오는 함수 구현 * chore: string.xml 변수명 변경 * refactor: 사진이 들어갈 이미지뷰와 카메라 아이콘을 분리 * feat: 카메라 권한 요청 기능 구현 (#92) * design: 카메라 권한 관련 아이콘 추가 * feat: 카메라 권한 추가 * feat: dataBinding 사용하도록 xml 변경 * feat: 카메라 위치권한을 요구하는 다이얼로그 생성 * feat: 카메라 권한이 없는 경우 권한 요청 다이얼로그를 띄우는 기능 구현 * chore: 레이아웃 id 컨벤션 유지 * refactor: 다이얼로그의 tag를 다이얼로그 클래스에 위치하도록 통일 * refactor: 매직넘버 상수화 * rename: drawable 파일명 변경 * feat: 명세서 기준으로 Dto들 생성 (#89) * feat: 명세서 기준으로 Dto들 생성 * feat: 변경된 API 명세에 맞춰 Dto 변경 * feat: 디바이스의 위치를 받아와 뷰에 보여주는 기능 구현 (#93) * feat: 디바이스의 위치를 받아와 뷰에 보여주는 기능 구현 * refactor: 좌표를 문자열로 반환하는 기능 함수분리 * feat: 도메인 모델 생성 (#91) * refactor: ERROR를 NONE으로네이밍 변경 * feat: 도메인 객체 생성 (미완) * feat: 도메인 객체 수정 및 추가 생성 * feat: 도메인 수정 * rename: 패키지명 수정 * feat: 통계 path 레트로핏 서비스 구현 #101 * feat: 서버에서 Rank 관련 데이터를 받아올 때 사용될 service 생성 (#100) * feat: 3차 데모데이용 Game Path 레트로핏 서비스 생성 (#102) * feat: 장소 path 레트로핏 서비스 구현 (#103) * feat: AdventureHistoryActivity 구현 (#106) * design: AdventureHistory 뷰에 필요한 string resource 추가 * design: AdventureHistory 뷰에 필요한 drawable resource 추가 * design: 리사이클러뷰에 들어갈 Item 레이아웃 생성 * feat: 모험 기록을 보여 주는 리사이클러뷰 어댑터 생성 * feat: AdventureHistory 액티비티 구현 * feat: AdventureHistoryActivity에 모험 기록을 보여줄 리사이클러뷰 구현 * feat: 뒤로가기 버튼 구현 * refactor: 함수 이름 변경 * refactor: 이름이 길어질 때 줄여쓰기가 되도록 기능 추가 * refactor: Mock 데이터 생성 방법 수정 * refactor: 불필요한 함수 인자 삭제 * feat: RankRepository 생성 (#109) * refactor: Service 명 수정 * feat: RankRepository Interface 구현 * feat: PlayerDto를 도메인 객체로 바꿔주는 도메인 mapper 생성 * feat: RankDto를 도메인 객체로 바꿔주는 도메인 mapper 생성 * feat: 서버와 Rank 데이터를 주고 받기 위해 팔요한 rank service 객체 생성 * feat: RankRepository 구현체 생성 * refactor: 함수 인자 표시 * feat: StatisticsRepository 생성 (#110) * rename: 파일명 수정 * feat: StatisticsRepository 인터페이스 생성 * feat: 서버와의 Statistics 관련 통신을 위한 service 객체 생성 * feat: StatisticsDto 객체를 도메인 객체로 바꿔주는 Mapper 생성 * feat: StatisticsRepository 구현체 생성 * refactor: 함수 인자 표시 * feat: 3차 데모데이 기획 변경에 맞는 AdventureRepository 설계 및 구현 (#111) * feat: 3차 데모데이 기획 변경에 맞는 AdventureRepository 설계 및 구현 * chore: 잘못 위치한 파일 위치 변경 * feat: PlaceRepository 생성 (#118) * feat: 장소 repository interface 생성 * feat: 서비스풀에 장소 서비스 추가 * feat: place mapper 생성 * feat: 장소 repository 구현체 생성 * refactor: 오류처리 변경에 따른 repository 코드 수정 * feat: 통계 path api 목서버 구현 (#116) * feat: 랭크 path api 목서버 구현 (#117) * feat: 랭크 path api 목서버 구현 * feat: 필요없는 변수 변환 로직 제거 * feat: RankActivity 구현 (#119) * feat: RankActivity 생성 * feat: RankActivity의 Intent를 생성해주는 함수 구현 * feat: 내 순위 및 전체 순위 목 데이터를 라이브 데이터 값으로 넣어주는 기능 구현 * design: RankActivity에 필요한 string resource 추가 * design: 내 순위 및 전체 순위를 보여주는 뷰 구현 * feat: 전체 순위를 띄워줄 리사이클러뷰 생성 및 구현 * feat: LiveData를 이용해 리사이클러뷰에 리스트 전달 * feat: 창 닫기 버튼 추가 구현 * refactor: Manifest 내의 rankActivity 위치 이동 * refactor: 컨벤션에 맞게 id 변경 * design: elevation을 활용해 그림자 추가 * refactor: dimens 적용 * refactor: 그림자 적용 * feat: 카메라로 찍은 사진을 뷰에 띄우고 Uri 추출기능 구현 (#120) * feat: 촬영한 사진을 이미지뷰에 보여주는 기능 구현 * feat: 촬영한 사진의 Uri 추출 기능 구현 * refactor: 권한 요청 로직 수정 및 함수 위치 변경 - 업로드 화면으로 이동 시 시스템 권한 요구 상자 팝업(카메라, 위치) - 거절한 권한에 대해 권한요청 다이얼로그 프래그먼트 팝업 * feat: 좌표 이미지를 클릭하여 좌표를 받아 보여주는 기능 구현 * feat: 닫기 버튼 추가 * feat: 3차 데모데이 뼈대 코드 추가 (#130) * refactor: AuthInterceptor에서 인증처리만 하도록 변경 * feat: PlayerException 추가 * feat: Player를 MemberId로 조회하는 기능 추가 * refactor: 로그인 된 PlayerId를 받는 ArgumentResolver 구현 * refactor: PlayerService 적용 refactor: Request DTO 와 Command DTO 분리 * feat: MyPageActivity 구현 (#121) * refactor: ERROR를 NONE으로네이밍 변경 * feat: 도메인 객체 생성 (미완) * feat: 도메인 객체 수정 및 추가 생성 * feat: 인터넷 권한 추가 * feat: 마이페이지의 아이템에 필요한 리사이클러뷰 구현 * feat: 마이페이지에 재사용이 여러번 될 가능성이 있는 뷰를 커스텀 뷰로 제작 * feat: 마이페이지 액티비티 생성 * style: 개행 * feat: 마이페이지 아이템의 두가지 경우의 레이아웃을 따로 제작 * feat: 레이아웃이 두개로 나눠짐에 따라 어댑터 수정중 * feat: 마이페이지 커스텀 아이템 레이아웃 수정 * feat: 마이페이지 커스텀 아이템 내부 리사이클러뷰 구현 방식 변경 (멀티 뷰홀더 적용) * feat: 마이페이지 뷰 구현 * feat: 도메인 모델을 UI모델로 변경할 매퍼 함수 생성 * design: mypage 레이아웃 디자인 변경 * feat: 뒤로가기 클릭리스너 추가 * remove: 중복된 객체 삭제 * refactor: view의 id 수정 * feat: Statistics 도메인 객체 수정으로 인해 자료형 변환 로직 추가 * fix: BaseEntity에 맞춘 data.sql 수정 (#133) * [BE] refactor: Pull Request 워크플로우 수정 (#134) * refactor: DTO들이 모두 record로 구현되도록 수정 (#136) * refactor: Pull Request 워크플로우 재수정 * feat: merge 워크 플로우 추가 (#137) * [BE] feat: merge 워크 플로우 추가 * [BE] refactor: merge 워크플로우 수정 * [BE] feat: 도커파일 생성 * [BE] refactor: 도커파일 이름 수정 * [BE] refactor: merge 워크플로우 재수정 * refactor: merge 워크 플로우 추가 (#139) * feat: merge 워크 플로우 추가 --------- Co-authored-by: zillionme <100172683+zillionme@users.noreply.github.com> Co-authored-by: dooboocookie <79090478+dooboocookie@users.noreply.github.com> * feat: 랭크 조회 기능 구현 (#94) * feat: 맴버 아이디로 플레이어 찾는 기능 구현 * feat: RankResponse dto 구현 * feat: RankResponse 정적팩토리 생성자 구현 * feat: 전체 랭크 조회 기능 구현 * feat: 나의 랭크 조회 기능 구현 * refactor: 요청 파라미터 예외 설정 * test: 테스트코드 추가 * refactor: 예외처리 로직 수정 * refactor: json 명세 수정으로 인한 dto 수정 * refactor: players 도메인을 삭제하고 Rank도메인으로 리팩토링 * refactor: 변수명 수정 * test: 테스트 오류 수정 * style: 디버깅 삭제 * feat: 랭크 뷰 기능 구현 및 서버 통신 구현 (#138) * remove: 필요없는 목 서버 삭제 * feat: 인자가 있는 ViewModel 생성을 위해 ViewModelFactory 생성 * feat: RankDto에 Serializable을 달아주어 직렬화가 가능하도록 구현 * refactor: 불필요한 null 검증 로직 제거 * feat: 서버와 통신해 전체 랭크와 내 랭크 정보를 받아온 후 사용자에게 보여주는 기능 구현 * feat: 서버 통신을 실패해 데이터를 불러오지 못했을 때 메시지를 띄운 후 창이 닫히도록 구현 * refactor: Retrofit Builder에 목서버 url로 갈아끼움 * refactor: 서버 통신 실패 시 에러 처리 로직 함수 분리 * feat: 시작 화면에서 랭크 버튼 클릭 시 랭크 화면으로 이동하도록 구현 * refactor: 함수 이름 변경 * refactor: 리사이클러뷰 애니메이터 설정 변경 * refactor: 내 등수 단위 표시 string 추가 * refactor: ktlint 적용 * refactor: 랭킹 관련 레트로핏 서비스의 path 변경 * feat: 게임 결과 뷰 서버 통신 및 기능 구현 (#143) * feat: gameId 값을 받아오는 intent * feat: 뷰모델에 인자로 레포지터리를 넘겨주기 위해 뷰모델 팩토리 생성 * refactor: RankDto에 Serializable을 달아주어 직렬화가 가능하도록 구현 * design: 게임 결과 화면에 필요한 string resource 추가 * refactor: 목 서버와의 연결을 위해 baseUrl 변경 * refactor: 랭크 API 통신을 위해 ViewModel에 RankRepository 인자 추가 * feat: 서버와 통신해 게임 결과를 받아온 후 사용자에게 보여주는 기능 구현 * feat: 서버와 통신해 내 랭크를 받아온 후 사용자에게 보여주는 기능 구현 * feat: 총 플레이 시간을 포매팅해서 보여주는 기능 구현 * feat: 메인으로 돌아가기 버튼을 누를 시 메인으로 돌아가게 하는 기능 구현 * refactor: timeFormatter의 패턴 상수화 처리 * refactor: 불필요한 Log 삭제 * design: color resource 추가 * refactor: 함수 분리 * refactor: 뷰 간격 조절 * feat: 서버에서 받아 온 imageUrl을 Glide를 사용해 이미지로 띄워주는 기능 구현 * design: 버튼 크기 조절 * feat: 모험 결과 DTO와 도메인 객체의 raisedRank 삭제 * feat: 랭크 변동 상황을 알려주는 뷰 삭제 * feat: 인자 변경에 따른 수정 사항 적용 * feat: 모험 기록 뷰 기능 구현 및 서버 통신 구현 (#151) * design: 모험 기록 뷰 디자인 변경 * design: 모험 기록 뷰 리사이클러뷰 아이템 디자인 변경 * refactor: 뷰 생성 위치 변경, 함수명 변경 * feat: 아이템에 사진 넣는 로직 추가 * feat: 뷰모델 팩토리 생성, 로컬 목데이터에서 가져오던 데이터를 서버로부터 가져오도록 변경 * feat: manifest exported 변경 * feat: 이미지 뷰 corner radius 적용 * design: 색상 변경 및 그림자 적용 * design: 마진값 변경 * [AN] feat: MyPage 기능 구현 (#146) * feat: 게임 결과 조회 기능 구현 (#152) * feat: 게임 아이디를 통해 게임결과를 조회한다 * feat: 결과 반환을 위한 responseDTO 생성 * refactor: 게임 결과를 위한 도메인 수정 * feat: 게임 결과 반환 기능 구현 완료 * style: 코드 컨벤션에 맞게 수정 * style: 코드 컨벤션에 맞게 수정 * refactor: 게임 도메인의 오류 리팩토링 * refactor: final 추가 * refactor: 게임 전체 결과 가져오는 로직 수정 * feat: 게임 종료 API 및 게임 조회 테스트 구현 (#147) * test: 게임 종료 기능 테스트 * feat: 게임 종료 기능 기본 구조 추가 * feat: 게임 종료 기능 구현 * test: 게임 점수 계산 기능 테스트 * feat: 게임 점수 계산 기능 구현 * test: 게임 점수 계산 테스트 수정 * test: 게임 종료 및 게임 결과 저장 서비스 테스트 * feat: 게임 종료 서비스 및 dto 구현 * test: 게임 종료 api 테스트 * feat: 게임 종료 api 구현 * test: 게임 종료 api 테스트 수정 * test: sql파일 수정 및 게임 종료 api 테스트 추가 * feat: 모험 결과 DTO와 도메인 객체의 raisedRank 삭제 * feat: 랭크 변동 상황을 알려주는 뷰 삭제 * feat: 인자 변경에 따른 수정 사항 적용 * test: 게임 종료 api 예외 처리 테스트 추가 * refactor: Game 클래스 필요없는 메서드 제거 및 리팩터링 * feat: 모험 기록 뷰 기능 구현 및 서버 통신 구현 (#151) * design: 모험 기록 뷰 디자인 변경 * design: 모험 기록 뷰 리사이클러뷰 아이템 디자인 변경 * refactor: 뷰 생성 위치 변경, 함수명 변경 * feat: 아이템에 사진 넣는 로직 추가 * feat: 뷰모델 팩토리 생성, 로컬 목데이터에서 가져오던 데이터를 서버로부터 가져오도록 변경 * feat: manifest exported 변경 * feat: 이미지 뷰 corner radius 적용 * design: 색상 변경 및 그림자 적용 * design: 마진값 변경 * [AN] feat: MyPage 기능 구현 (#146) * feat: 게임 결과 조회 기능 구현 (#152) * feat: 게임 아이디를 통해 게임결과를 조회한다 * feat: 결과 반환을 위한 responseDTO 생성 * refactor: 게임 결과를 위한 도메인 수정 * feat: 게임 결과 반환 기능 구현 완료 * style: 코드 컨벤션에 맞게 수정 * style: 코드 컨벤션에 맞게 수정 * refactor: 게임 도메인의 오류 리팩토링 * refactor: final 추가 * refactor: 게임 전체 결과 가져오는 로직 수정 * refactor: 테스트 fixture 클래스 생성 * refactor: 테스트 fixture 적용 * fix: 레포지토리 테스트 truncate.sql 추가 * fix: 서비스 테스트 트랜잭션 추가 * test: 게임 식별자로 게임 조회 테스트 추가 * chore: 식별자로 게임 조회 메서드명 변경 * chore: 머지 컨플릭트 해결 --------- Co-authored-by: hyunji1203 Co-authored-by: k_dragonm <78788847+briandr97@users.noreply.github.com> Co-authored-by: krrong Co-authored-by: chaewon121 <80631952+chaewon121@users.noreply.github.com> * feat: 장소 등록 api 구현 * feat: BaseEntity 생성 * feat: Player 도메인 생성 * feat: Hint 도메인 생성 Co-authored-by: dooboocookie * feat: GameResult 도메인 생성 Co-authored-by: dooboocookie * style: import문 최적화 Co-authored-by: dooboocookie * feat: 스프링 부트 어플리케이션에 @EnableJpaAuditing 추가 Co-authored-by: dooboocookie * refactor: 게임 도메인 수정 Co-authored-by: dooboocookie * refactor: 장소 도메인 생성 Co-authored-by: dooboocookie * refactor: Score 도메인 생성 Co-authored-by: dooboocookie * refactor: Place에 BaseEntity 상속 추가 * refactor: Member에 BaseEntity 상속 추가 및 생성자 추가 * test: 장소를 주가하는 기능 tdd test: 테스트에서 사용되는 값 fixture 생성 * feat: 장소 저장하는 기능 구현 * feat: 장소 저장하는 기능 구현 * feat: places 응답 DTO 추가 * test: 장소 생성 API E2E 테스트 추가 feat: 장소 생성 API 구현 * refactor: PlaceCheckService 도메인 서비스 생성 refactor: MultipartFileManager 파일 저장기 생성 * feat: 임시 커밋 * refactor: File 저장 경로 profile에서 변수로 관리하도록 변경 * feat: Place 전체 조회 기능 추가 - 정렬 기능 * feat: Place 단건 조회 기능 추가 * feat: Place 추천 서비스 도메인 서비스로 분리 * feat: Place 생성 서비스 로직 매개변수로 CreatePlaceCommand 받도록 수정 * refacotr: 파일 저장 경로 application.properties에서 받도록 수정 * test: Fixture 수정 및 테스트 수정 * test: 장소 추가 API 테스트 추가 test: 장소 추가 API 예외 테스트 추가 test: 아이디 장소 조회 API 테스트 추가 test: 장소 조회 API 테스트 추가 * test: 테스트 수정 * chore: 충돌 해결 --------- Co-authored-by: kokodak * chore: 안드로이드 CI workflow 수정 * feat: 힌트 생성 API 설계 및 구현 (#142) * feat: 위경도 좌표를 통해 방향을 계산하는 기능 구현 * feat: memberId 로 Member 를 찾는 기능 구현 * feat: PlayerService 생성 * feat: 힌트 생성에 대한 Command DTO 생성 * feat: 힌트 결과에 대한 DTO 생성 * feat: 힌트에 대한 Service 생성 * feat: 게임에서 힌트를 더 사용할 수 있는지에 대한 판단 기능 구현 * feat: 힌트 생성에 대한 Request DTO 생성 * feat: 힌트 생성에 대한 Command DTO 생성 * feat: 힌트 개수에 따른 생성 제약 조건 및 예외 추가 * feat: GameController 에 힌트 생성 API 로직 구현 * fix: 힌트 최대 사용 개수 수정 * refactor: 게임 최대 시도 횟수를 상수로 추출 * test: 로컬 테스트 환경 설정 * feat: cascade 조건 추가 * test: 더미데이터를 담은 테스트용 fixture 생성 * test: 힌트 생성 기능에 대한 테스트 작성 * chore: RestAssured 의존성 추가 * fix: Game 에서의 cascade 적용 철회 및 테스트 일부 수정 * test: 힌트 생성 API 테스트 코드 작성 * style: 코드 정렬 * feat: 특정 게임의 힌트 단건 조회 API 설계 및 구현 (#157) * feat: 힌트 조회 Command DTO 생성 * feat: 힌트 관련 예외 추가 * refactor: MemberFixture 에서 매직넘버를 상수로 추출 * feat: 힌트 id를 통해 힌트를 조회하는 기능 구현 * feat: 힌트 id를 통한 힌트 조회 API 구현 refactor: HintResponse 구조 수정 remove: DirectionResponse 삭제 * chore: 병합 충돌 해결 * style: 코드 정렬 * feat: 인게임 화면 기능 및 서버통신 구현 (#149) * feat: OnAdventure의 기능목록 작성 * feat: 분리된 Factory 클래스 삭제. ViewModle의 동반객체로 이동 * feat: 기능 개발중.. 임시 커밋 * feat: 라이브데이터를 상황에 맞게 커스텀 하려고 시도중 * feat: 도메인이 추가 및 변경됨에 따라 UiModel과 Mapper를 생성 * feat: Place 도메인 기능 추가 * feat: 인게임 화면에서 필요한 상태 및 로직들을 뷰모델에 작성 * feat: 네이버맵에 대한 코드로 인해 액티비티가 너무 길어져 액티비티 코드를 줄이기 위해 분리를 시도중 * style: 아이콘 추가 * feat: 목서버 base url 적용 * feat: 라이브데이터로부터 옵저버가 처음 한번만 notify를 받을 수 있는 라이브데이터 생성 * design: 아이콘 추가 * feat: Positive 버튼과 Negative 버튼이 존재하는 다이얼로그를 재사용할 수 있도록 생성 및 포기하기, 힌트 사용하기 다이얼로그 빌더 함수 생성 * feat: OnAdventureActivity에서 네이버맵 관련 작업을 분리한 코드 작성 - 힌트 마커 추가 - 목적지 마커 추가 - 네이버 로고 위치 조정 - 나침반 위치 조정 - 내 위치 버튼 위치 조정 * feat: OnAdventureViewmodel 재구현 * feat: Dto에 빠진 Serializable 어노테이션 추가 * feat: 뷰모델 변경으로 인해 데이터바인딩 수정 * design: string resources 추가 * feat: OnAdventureActivity 기능 구현 - 오류 처리 - 서버 통신(목서버) - 다이얼로그 띄우기 * feat: adventureRepository 변경으로 인한 수정 * feat: 뷰모델 팩토리 위치 변경 * feat: 도메인 변경으로 인한 코드 수정 * style: 매니페스트 정리 * refactor: NaagaAlertDialog 개선. 버튼 클릭 이벤트를 다이얼로그 생성시 무조건 받도록 수정함 * feat: AdventureResultActivity를 생성하는 인텐트를 받아오는 방식 변경 및 adventureId를 함께 넘겨줌 * chore: 백엔드 CD 워크플로우 수정 --------- Co-authored-by: zillionme <100172683+zillionme@users.noreply.github.com> * feat: 점진적 리팩토링이 완료됨에 따라 파일 정리 (#156) * refactor: 기존에 사용하던 Adventure 도메인 객체와 AdventureRepository가 완전히 대체되었으므로 삭제하고 새로 생성한 객체들의 임시 네이밍을 변경 * docs: 기능 구현이 완료되었으므로 기능 목록을 제거한다. * refactor: 도메인의 점진적 리팩토링이 완료됨에 따라 UiModel과 Mapper 또한 사용되지 않는 것들을 삭제하고 임시 네이밍을 변경했습니다. * refactor: 점진적 리팩토링이 완료됨에 따라 사용되지 않는 dto들을 삭제하고 패키지 구조를 변경 * refactor: dto와 도메인이 변경됨에 따라 Mapper가 변경됨 * refactor: 서비스 인터페이스와 서비스 풀에서 더 이상 사용하지 않는 파일 삭제 및 dto 변경으로 인한 변경 * refactor: 점진적 리팩토링이 완료됨에 따라 사용하지 않는 레포지토리 구현체 삭제 * rename: repository 네이밍 변경으로 인한 수정 * refactor: 도메인 변경으로 인한 스플래시 변경 및 기능 개선 * rename: 도메인 변경으로 인한 변경 * rename: adventureRepository와 그 구현체 네이밍 변경으로 인한 수정 * feat: 통계 조회 기능 구현 (#159) * feat: Statistic 반환dto 생성 * feat: Statistic 도메인 생성 및 계산로직 구현 * feat: 나의 통계 조회 기능 구현 완료 * fix: 시간계산 오류 수정 * test: @Sql조건 수정 * refactor: 총 플레이 시간과 게임 시간 값 수정 * fix: 인터셉터 패턴 추가 (#161) * feat: 게임 시작 화면 기능 구현 (#162) * design: BeginAdventureActivity에 필요한 string resource 추가 * refactor: 이동할 뷰에게 getIntent 함수를 이용해 intent 생성 * fix: Splash 화면에서 바로 인게임 화면으로 넘어가는 오류 수정 * feat: 메뉴를 누르면 해당 화면으로 이동하도록 구현 * refactor: 게임 결과 화면이 자신의 Intent를 생성하도록 수정 * refactor: ktlint 적용 * feat: 게임 생성 로직 수정 (#166) * fix: 잘못된 인덱스 로직 수정 * feat: Location 헤더로부터 id를 추출하는 기능 구현 * refactor: 매직넘버를 상수로 대체 * feat: 3차 데모데이 API 명세에 맞추어 응답 DTO 필드 추가 * test: 게임 생성 API 테스트 작성 * chore: 서브 모듈 설정 추가 * feat: firebase crashlytic 초기 환경 설정 (#170) * feat: FirebaseAnalytics 생성 및 로그 삽입을 담당할 객체 생성 및 상수 모음 파일 생성 (#171) * fix: application 파일 복구 (#174) * chore: 더미 데이터 추가 (#176) * feat: API 수정으로 인한 변경사항 적용 (#177) * feat: 명세서 변경으로 인해 dto 변경 * feat: 도메인 객체의 타입 변경 * feat: 받아올 값의 타입과 보여줄 뷰의 형태 변화를 반영한 코드 수정 * design: 제약 변경, 보여줄 데이터의 단위 추가 * feat: 목데이터를 실제 값으로 변경 * feat: 인텐트 값을 받아오는 것의 예외 상황에 대한 처리 * refactor: RankReponse 수정 (#179) * refactor: 변수명 수정 * refactor: 변수명 수정 * feat: baseUrl 변경 및 감추기와 그에 따른 yml 파일 변경 (#182) * feat: baseUrl이 노출되지 않도록 하며 github secret으로부터 가져올 수 있도록 yml 파일 수정 * feat: local.properties로부터 baseUrl을 가져올 수 있도록 변경 * feat: baseUrl을 BuildConfig로부터 가져올 수 있도록 변경 * ci 파일 1차 수정 * ci 파일 2차 수정 * ci 파일 3차 수정 * ci 파일 4차 수정 * refactor: 쿼리와 uri 수정 (#184) * refactor: 변수명 수정 * refactor: 변수명 수정 * refactor: 변수명 수정 * fix: uri 쿼리파라미터 오류 수정 * feat: 업로드 뷰 기능 구현 (#181) * feat: 제목, 설명을 입력받는 기능 구현 * feat: 촬영한 사진의 uri를 뷰모델에 저장 * feat: 모든 정보가 입력되지 않은 경우 전송하지 못하도록 하는 기능 구현 * refactor: 함수명 수정 * feat: 좌표 확장함수 생성 및 전송 기능 수정 - 필요한 정보가 하나라도 입력되지 않은 경우 정보를 입력해달라는 토스트 메시지 출력 - ViewModel에 좌표를 전달하고, 뷰에 좌표를 출력하기 위해 원하는 형태의 text로 변환하는 확장함수 생성 * feat: post 시 필요한 데이터를 파트로 분리 * feat: ViewModel 생성에 필용한 팩토리 추가 * feat: place 등록 기능 구현 * feat: viewModel 생성방법 변경 및 등록 버튼 리스너 연결 * fix: GET /games 쿼리 스트링 없어도 되도록 수정 (#187) * fix: 게임 전체 조회 기능 수정 * fix: 게임 전체 조회 기능 재수정 * fix: 랭크 전체조회 쿼리 파라미터 조건 수정 (#191) * fix: 장소데이터 추가 및 인터셉터 설정 변경 * refactor: 컨트롤러 요청 수정 (#193) * fix: POST /games/{gameId}/hints 쿼리 스트링 없어도 되도록 수정 (#195) * fix: 힌트 생성 api * fix: 힌트 생성 api 재수정 * feat: 게임 종료 시, 플레이어 점수 덧셈 기능 추가 (#198) * feat: 게임 종료 시, 플레이어 점수 덧셈 기능 추가 * refactor: 게임 결과 거리 조회 수정 * feat: Firebase Analytics 버튼 클릭 로그 추가 (#183) * feat: view id를 가져오기 위한 확장함수 추가 * feat: BeginAdventureActivity firebase용 버튼 로그 추가 * feat: LocationPermissionDialog firebase용 버튼 로그 추가 * refactor: 함수명 및 함수위치 통일 * feat: AdventureResultActivity firebase용 버튼 로그 추가 * feat: MyPageActivity firebase용 버튼 로그 추가 * feat: OnAdventureActivity firebase용 버튼 로그 추가 * refactor: 함수명 통일 * feat: UploadActivity firebase용 버튼 로그 추가 * feat: CameraPermissionDialog firebase용 버튼 로그 추가 * feat: xml에 있는 onClick 함수 삭제 및 firebase 버튼 로그 추가 * [BE] chore: spring profile에 대한 yml 파일 수정 * chore: yml 파일 수정 * chore: submodule 수정 * fix: @Value 어노테이션 삭제 * fix: 서버 통신 수정 (#196) * feat: NaagaThrowable을 수정하면서 data layer에서 400 / 500 / onFailure 세가지만 판단 * feat: 변경된 명세에 따라 AdventureStatusDto 변경 * feat: OnAdventureActivity에서 에러 로그를 볼 수 있도록 추가 * feat: OnAdventureActivity에서 도착 실패시 다시 시도하라는 토스트 발생 * feat: 다른 라이브 데이터를 받아서 한번만 호출할 수 있도록 효율적으로 변경 - 기존에는 DiposableLiveData를 만들고 이 데이터에 setValue까지 직접 해줘야했는데 이제는 다른 라이브데이터를 받아서 DisposableLiveData까지 setValue해주지 않아도 된다. * feat: 기존 게임을 불러올 경우 기존의 힌트를 찍어주는 로직 작성 * rename: 매개변수명 변경 --------- Co-authored-by: hyunji <83613106+hyunji1203@users.noreply.github.com> * refactor: dev 서버 환경 구축 (#236) * chore: submodule url 프로토콜 수정 * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * chore: update submodule * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * chore: update submodule * chore: update submodule * chore: MySql 의존성 추가 * chore: update submodule * Update backend_dev_merge_workflow.yml * Update backend_dev_merge_workflow.yml * chore: update submodule --------- Co-authored-by: kokodakadokok <45879491+kokodak@users.noreply.github.com> Co-authored-by: kokodak * fix: 깃허브 액션 워크플로우 수정 (#239) * feat: 소셜 로그인 기능 구현 (#235) * design: LoginActivty에 필요한 drawable source 추가 * design: LoginActivty에 필요한 string source 추가 * feat: 소셜 로그인을 위한 gradle 추가 * feat: 난독화 시 카카오 SDK가 포함되지 않도록 규칙 설정 * feat: 카카오 로그인 API key 숨김 처리 * feat: 인터넷 사용 권한 허용 * feat: 카카오 로그인 기능을 위한 Redirect URI 설정 추가 * feat: Kakao SDK를 초기화하는 application 구현 * feat: Kakao 로그인 기능 Util 구현 * design: LoginActivity 뷰 구현 * feat: 게임 상태가 진행 중이 아닐 때 Splash 화면에서 로그인 화면으로 이동하도록 구현 * feat: 상태바 색상 변경 * feat: 로그인 기능 구현 * feat: 사용자의 카카오 계정 닉네임을 마이페이지에 보여주는 기능 구현 * feat: 서버와 통신해 토큰을 얻어올 때 필요한 Dto, Domain 객체 생성 * feat: Dto, Domain 변환 mapper 추가 * feat: 서버와 통신하여 로그인 인증을 해주는 retrofit service 구현 * feat: 로그인 인증을 통해 토큰을 가져와주는 레포지토리 구현 * feat: 서버에게 받은 토큰을 저장하는 SharedPreference 구현 * feat: 서버에게 토큰을 받아와 로컬 저장소에 저장하는 기능 구현 * feat: 카카오 API KEY 감추기에 따른 yml 파일 수정 * fix: yml 파일 오류 수정 * fix: yml 파일 오류 수정 * fix: yml 파일 오류 수정 * fix: yml 파일 오류 수정 * refactor: ktlint 적용 * refactor: yml 파일 코드 정리 * refactor: 암호화 처리 되는 EncryptedSharedPreferences로 변경 * feat: retrofit Header에 서버에서 받아온 토큰 넣어주기 구현 * refactor: 카카오 토큰을 함수 인자로 받아오도록 수정 * rename: preference가 사용된 파일명을 datasource로 변경 * refactor: 함수 인자명 변경 * chore: 오류 코드 정리 및 예외 핸들러 보완 * chore: 오류 코드 문서와 통일 * refactor: 에러코드 문서화에 맞춘 코드 수정 * refactor: 요청 바디에 대한 입력 오류 예외 핸들러 추가 * fix: 원격 저장소와의 코드 변경 수정 * Update backend_dev_merge_workflow.yml * hotfix: workflow 긴급 수정 * hotfix: yml 파일 삭제 * fix: 게임 종료 실패 시, 남은 도전 횟수 줄지 않는 문제 해결 * chore: 서브모듈 추가 * 게임 종료 특정 예외 롤백 예외 적용 * fix: 도착 실패시, 시도 횟수 롤백 문제 수정 * test: 테스트 추가 * chore: workflow 수정 * chore: workflow 수정 --------- Co-authored-by: zillionme * feat: 자동 로그인 및 로그인 로직 수정 (#241) * feat: AuthInterceptor 만드는 중 * feat: 닉네임은 서버에서 내려주는 정보이므로 직접 가져올 필요가 없다. 로직 삭제 * rename: 카카오라는 플랫폼에 종속적이지 않은 인증정보 저장소이므로 네이밍 변경 * chore: NaagaApplication은 특정 뷰에 종속된 것이 아닌 어플리케이션 전체를 관장하는 객체이므로 패키지 변경 * feat: Application의 서브클래스 수정 및 해당 위치에서 AuthDataSource 생성 * rename: Preference 네이밍 변경 * feat: 도메인에서 엑세스 토큰과 리프레시 토큰에 대한 내용은 필요가 없다고 생각되어 삭제 * feat: preference에 refresh 로직 추가 * feat: AuthRepository 수정, 데이터 레이어에서 토큰을 저장할 수 있도록 변경 * feat: 주석 추가 및 고차함수를 통해 콜백에서 발급되는 토큰을 받아감 * rename: AuthService의 함수명 변경 * refactor: object에서 class로 변경 * refactor: DefaultAuthRepository에서 dataSource를 외부에서 주입받도록 변경 * refactor: 토큰 가져오는 방식이 변경됨 * feat: 카카오 로그인 방식에 문제가 있어 변경함 * feat: AuthInterceptor 완성 * feat: 예외처리 (#243) * feat: 데이터 레이어에서 사용할 Custom Throwable 클래스 생성 * feat: 통신 오류시 DataThrowable을 사용하는 코드 스니펫 작성 * feat: RankRepository의 서버 통신을 DataThrowable을 사용하는 통신으로 변경 * feat: 예상하는 예외 발생 시 토스트메시지로 보여주는 기능 구현 * refactor: sort, order를 도메인 Enum 클래스를 사용하도록 변경 * feat: PlaceRepository의 서버 통신을 DataThrowable을 사용하는 통신으로 변경 * feat: StatisticsRepository의 서버 통신을 DataThrowable을 사용하는 통신으로 변경 * feat: upload 기능 서버 통신 연결 해제 * refactor: 점진적 리팩토링 종료 및 불필요한 코드 삭제 * feat: http 응답코드 500번대, body가 null일 때 반환할 에러 추가 * feat: 통신 오류시 DataThrowable을 사용하는 코드 스니펫에 예외 핸들링 추가 * fix: 잘못된 파라미터 수정 * feat: 클라이언트에서 사용하는 hintThrowable 추가 * feat: AdventureRepository의 서버 통신을 DataThrowable을 사용하는 통신으로 변경 * feat: 장소등록 페이지로 이동하지 못하도록 구현 * style: 불필요한 개행 삭제 * refactor: 뷰모델 코드 통일 및 핸들링할 예외 수정 * refactor: 예외 발생 시 보여주는 방법 변경 * refactor: ViewModelProvider의 factory를 ViewModel의 동반객체로 이동 * refactor: 사용하지 않는 예외 클래스 삭제 * refactor: 인증관련 에러 삭제 * refactor: 에러 코드 변경 * feat: 소셜 로그인 기능과 인터셉터 인가 처리 및 아규먼트 리졸버 기능 추가 * feat: OAuth 연습 * feat: OAuth 연습2 * chore: 연습 코드 삭제 * feat: JWT 생성 로직 * feat: AccessToken과 RefreshToken 담고있는 AuthTokens 생성 * feat: 카카오 토큰으로 카카오로부터 유저 정보 받아오는 요청 로직 추가 * feat: 인증 정보 조회에 대한 서비스 로직 추가 * feat: 로그인 관련 요청 추가 * feat: JWT에서 멤버 ID 추출하는 기능 추가 * feat: 인터셉터에서 Authorization 헤더에서 토큰 추출해서 memberId 조회하는 기능 추가 * feat: 멤버 회원가입 시, 플레이어 함께 생성하도록 추가 chore: 네이밍 변경 Co-authored-by: chaewon121 * refactor: Member에 Password 삭제 test: Basic 헤더에서 Bearer + 토큰으로 변경 Co-authored-by: chaewon121 * chore: 패키지 구조 변경 Co-authored-by: chaewon121 * test: AuthInterceptor 테스트 추가 Co-authored-by: chaewon121 * test: AuthArgumentResolver 테스트 추가 Co-authored-by: chaewon121 * test: AuthController 테스트 추가 Co-authored-by: chaewon121 * test: AuthService 테스트 추가 Co-authored-by: chaewon121 * chore: 필요없는 프로필 삭제 Co-authored-by: chaewon121 * feat: 서브모듈 추가 Co-authored-by: chaewon121 * feat: 예외 처리 추가 Co-authored-by: chaewon121 * remove: 테스트 프로필 삭제 Co-authored-by: chaewon121 * chore: 스타일 수정 * test: pull 후 테스트 통과되도록 수정 Co-authored-by: chaewon121 * feat: 난독화를 위해 모든 Dto 필드에 SerialName을 추가 (#245) * fix: AuthInfo에 기본 생성자 추가 * fix: 서브모듈 업데이트 * feat: 앱 아이콘 설정 (#253) * fix: 메인으로 돌아갈 시 해당 액티비티가 사라지도록 수정 (#255) * feat: 사용자가 GPS 기능을 껐을 때 이를 인지하고 키도록 유도하는 기능 구현 (#258) * feat: 장치 구성 변경 대응 (#250) * feat: 화면을 세로모드로 고정 * feat: 다크모드를 사용해도 다크테마가 나오지 않도록 변경 * feat: 난독화 방지를 위한 ProGuard 수정 (#259) * refactor: 좌표 간 거리를 M 단위로 변경 및 힌트/시도횟수 변경 * refactor: 좌표간 거리를 m 단위로 변경 * refactor: 힌트 최대 사용 개수와 최대 시도 횟수 변경 * fix: 서브모듈 최신화 * feat: Firebase Analytics 서버 통신 에러 로그 추가 (#260) * refactor: 게임 종료 타입에 따른 점수 계산 기능 수정 * refactor: 메서드 명 변경 * refactor: 게임 시작 위치와 목적지의 직선 거리 구하는 기능 추가 * refactor: 게임 종료 타입에 따른 점수 계산 기능 수정 * refactor: 게임 결과에 따른 점수 계산 기능 수정 * refactor: gameScore 관련 패키지 네이밍 변경 * refactor: enum을 클래스의 상수로 빼놓은 것 수정 * refactor: gamescore 도메인에 스프링 의존성 제거 * refactor: 스코어 정책 못 찾을 때 예외 발생하도록 변경 feat: InternalException과 Exception에 대한 핸들러 추가 * chore: 스타일 수정 --------- Co-authored-by: dooboocookie * feat: 로깅 기능 추가 (#268) * feat: 이어하기 기능 추가 (#263) * feat: 이어하기 기능 구현 * feat: 뒤로가기 버튼을 2초내에 두 번 눌려야 종료되도록 기능 구현 * feat: splash를 거치면 login 액티비티로 이동하도록 수정 * feat: splash에서 adventure를 받아온 경우 BeginAdventureActivity까지 전달 - 이를 통해 이어하기가 가능하도록 기능 구현 * feat: 진행중인 게임이 있는 경우 이어하기가 표시되도록 변경 * feat: 게임결과 화면에서 뒤로가기 버튼 클릭 시 BeginAdventureActivity로 이동하도록 구현 * refactor: 버전에 따른 분기처리 함수에 Compat suffix 추가 * refactor: 문자열 strings.xml로 이동 * refactor: 사진 저장 경로 수정 (#269) * refactor: 이미지 저장하는 경로와 URL 경로 수정 * chore: 서브모듈 업데이트 * chore: 프로덕트 서버 배포 * chore: prod 서버 배포 * chore: prod 서버 배포 * fix: OnAdventureActivity 수정 (#265) * chore: lottie 의존성 추가 * design: 로티 애니메이션과 뷰 추가 * feat: 로딩 기능 추가 * feat: 뷰모델 불필요한 로직 정리 * feat: 중복 값에는 갱신되지 않는 라이브데이터 생성 * feat: 로티를 지도 위로 띄우기 위해 elevation을 적용 * feat: 로티 배경 흐린 색으로 수정 * design: string 리소스 추가 * feat: 힌트 잔여횟수 표시하도록 변경, 정답 도전 잔여 시도 횟수 표기, 토스트에서 스낵바를 띄우도록 변경, 목적지가 없을 시 종료 * design: 불필요한 + 버튼 삭제 * design: margin값 변경 * feat: snackbar를 toast로 변경 * feat: 로그인 시 사용자의 토큰이 로그에 보여지지 않도록 수정 (#271) * feat: 스플래시에서 받아온 게임을 넘겨주는 기능 삭제 (#274) * refactor: 로그 경로 변경 * chore: 서브모듈 수정 * fix: 잘못된 로직 수정 (#276) * feat: 스플래시에서 받아온 게임을 넘겨주는 기능 삭제 * fix: 잘못된 로직 수정 * feat: 시작 액티비티 변경 * feat: BeginAdventureActivity에서 진행중인 게임이 있는지 판단하는 기능 구현 (#277) * design: 로딩을 위한 스켈레톤 UI 생성 * feat: 진행중인 상태의 게임을 받아오고 로딩하는 과정을 추가 * feat: 작업중 * rename: 로티 파일 이름 변경 * design: 스켈레톤 뷰 지우고 로티 뷰 추가 * feat: 로티 로딩뷰로 수정 * style: 로그 삭제 * feat: 뷰 진행 플로우 변경 * refactor: 직접 만든 로직을 이미 존재하는 코틀린 api로 대체 * fix: 에러 수정 * fix: 사진 저장 시 1번 회원으로만 저장되는 오류 수정 * fix: 사진 저장 시 1번 회원으로만 저장되는 오류 수정 * chore: 서브모듈 업데이트 * chore: 서브모듈 업데이트 * chore: 추천 범위 500km로 수정 * test: 테스트 fixture 및 builder 추가 및 적용 * fix: 잘못된 거리 계산 수정 * feat: 테스트 Builder 패턴 적용 및 Fixture 생성 remove: 기존의 Fixture 파일 삭제 * test: 테스트 Builder 적용 및 기존의 cascade 옵션 삭제 * fix: application.yml 수정 * chore: 리커시브 컴페리전 이그노어 필드 추가 --------- Co-authored-by: dooboocookie * feat: Refresh Token 구현 및 자동 로그인 API, 회원 탈퇴 API, 로그아웃 API 구현 * test: 액세스 토큰 재발급 e2e 테스트 작성 * fix: 로그 환경셜정 변경 * feat: 액세스 토큰 재발급 기능 추가 * refactor: 액세스 토큰 재발급 기능 리팩터링 * refactor: 최초 액세스 토큰 발급 시 AuthToken 영속화 * chore: 임시 커밋 * test: 일부 테스트 수정 및 삭제 * feat: 아규먼트 리졸버 변경 및 추가 * feat: 소셜 로그인 연결 끊기 기능 추가 * fix: 아규먼트 리졸버 스프링 빈 등록 * refactor: 기본 설정파일 수정 * chore: 서브모듈 업데이트 * refactor: 멤버, 플레이어 삭제 필드 추가 * feat: 멤버, 플레이어 삭제 기능 추가 * feat: 토큰 삭제 기능 추가 * feat: AuthToken에 멤버 필드 추가 * feat: 로그아웃 API 추가 * chore: 패키지 구조 변경 * test: 회원탈퇴 로그아웃 E2E 테스트 추가 * chore: 서브모듈 업데이트 * refactor: 소프트 딜리트 @SqlDelete로 수정 refactor: cascade 옵션 PERSIST로 수정 test: 회원탈퇴 로그아웃 서비스, 컨트롤러 테스트스 작성 * chore: 충돌 해결 * chore: 서브모듈 업데이트 * chore: 충돌 해결 --------- Co-authored-by: zillionme * test: 작성되지 않은 테스트 코드 추가 * fix: 잘못된 거리 계산 수정 * feat: 테스트 Builder 패턴 적용 및 Fixture 생성 remove: 기존의 Fixture 파일 삭제 * test: 테스트 Builder 적용 및 기존의 cascade 옵션 삭제 * test: 없는 예외 테스트 추가 * test: StatisticTest 와 gameServiceTest 추가 * Update backend_dev_pr_workflow.yml * fix: Thread.sleep 추가 * Update GameControllerTest.java * Update GameControllerTest.java * Update backend_dev_pr_workflow.yml * Update backend_dev_pr_workflow.yml * Update backend_dev_pr_workflow.yml * Update GameControllerTest.java * Update backend_dev_pr_workflow.yml * Update backend_dev_pr_workflow.yml * test: 테스트 fixture 및 builder 추가 및 적용 * fix: 잘못된 거리 계산 수정 * feat: 테스트 Builder 패턴 적용 및 Fixture 생성 remove: 기존의 Fixture 파일 삭제 * test: 테스트 Builder 적용 및 기존의 cascade 옵션 삭제 * fix: application.yml 수정 * chore: 리커시브 컴페리전 이그노어 필드 추가 --------- Co-authored-by: dooboocookie * feat: Refresh Token 구현 및 자동 로그인 API, 회원 탈퇴 API, 로그아웃 API 구현 * test: 액세스 토큰 재발급 e2e 테스트 작성 * fix: 로그 환경셜정 변경 * feat: 액세스 토큰 재발급 기능 추가 * refactor: 액세스 토큰 재발급 기능 리팩터링 * refactor: 최초 액세스 토큰 발급 시 AuthToken 영속화 * chore: 임시 커밋 * test: 일부 테스트 수정 및 삭제 * feat: 아규먼트 리졸버 변경 및 추가 * feat: 소셜 로그인 연결 끊기 기능 추가 * fix: 아규먼트 리졸버 스프링 빈 등록 * refactor: 기본 설정파일 수정 * chore: 서브모듈 업데이트 * refactor: 멤버, 플레이어 삭제 필드 추가 * feat: 멤버, 플레이어 삭제 기능 추가 * feat: 토큰 삭제 기능 추가 * feat: AuthToken에 멤버 필드 추가 * feat: 로그아웃 API 추가 * chore: 패키지 구조 변경 * test: 회원탈퇴 로그아웃 E2E 테스트 추가 * chore: 서브모듈 업데이트 * refactor: 소프트 딜리트 @SqlDelete로 수정 refactor: cascade 옵션 PERSIST로 수정 test: 회원탈퇴 로그아웃 서비스, 컨트롤러 테스트스 작성 * chore: 충돌 해결 * chore: 서브모듈 업데이트 * chore: 충돌 해결 --------- Co-authored-by: zillionme * chore: 충돌 해결 --------- Co-authored-by: kokodak Co-authored-by: kokodakadokok <45879491+kokodak@users.noreply.github.com> Co-authored-by: dooboocookie Co-authored-by: dooboocookie <79090478+dooboocookie@users.noreply.github.com> Co-authored-by: zillionme * feat: 버전 변경 (#290) * feat: 로깅하기 (#291) * 임시저장 * 임시저장 * feat: 환경 설정별 로깅 추가 * refactor: 로그 파일 및 warn, error 로그 메시지 수정 * refactor: db 로그 출력 분리 * refactor: db 로그 레벨 수정 * chore: 서브모듈 업데이트 * chore: 워크 플로우 수정 * feat: 장소 업로드 기능 구현 (#301) * refactor: Part를 PartMap으로 변경 * feat: 업로드 화면으로 이동하는 기능 구현 * feat: 정보를 서버로 전송하는 기능 구현 - 필요한 정보를 RequestBody 형태로 만들고 Map에 저장하여 전송하는 방식 * feat: 정보를 성공, 실패했을 때의 로직 구현 * feat: 원하는 예외만 핸들링 하도록 구현 * feat: 잡은 예외에 토스트로 알맞는 문구를 띄워주는 기능 구현 * fix: 자료형 변경 * refactor: 문자열 string.xml 로 추출 * refactor: toRequestBody 변수 삭제 * refactor: key값 companion object에 저장 * fix: 위치관련 버그 수정 (#302) * feat: 업로드 화면으로 들어간 시점에 위치를 받아오는 기능 구현 * feat: 업로드 화면으로 이동하는 기능 구현 * feat: 위치 로딩을 기다리도록 하기 위한 로딩 로티 추가 * feat: 위치를 받아오고 저장할 때까지 로딩로티를 보여주는 기능 구현 * refactor: branch 변경 (#311) * refactor: 네트워크 작업 코루틴으로 변경 (#312) * refactor: Service함수 suspend로 변경 * feat: 값을 반환하거나 예외를 던지는 Response 확장함수 구현 * refactor: 반환 값 Response, suspend 적용 * refactor: 코루틴 적용 * refactor: ViewModel이 Application을 참조하지 않도록 변경 (#307) * Delete .idea directory * chore: 전체 gitignore 지정 (#320) * refactor: Login 뷰에서 진행하는 네트워크 작업 코루틴으로 변경 (#328) * feat: service와 repository에 suspend 추가 * refactor: repository 내 코루틴 사용 * refactor: repository 생성 시 Dispatcher 전해주도록 수정 * refactor: 코루틴 사용 * refactor: 불필요한 인자 제거 * refactor: 불필요한 로그 제거 * refactor: 불필요한 import 제거 * refactor: my page뷰에서 진행하는 네트워크 작업 코루틴으로 변경 (#323) * refactor: suspend 함수로 수정 및 반환 값을 Response로 수정 * refactor: DefaultStatisticsRepository의 네트워크 작업을 Response의 확장함수로 선언한 getValueOrThrow를 사용하도록 변경 * refactor: DefaultStatisticsRepository에서 하는 네트워크 작업을 코루틴을 사용하도록 변경 * refactor: suspend 함수로 수정 및 반환 값을 Response로 수정 * refactor: PlaceRepository에서 하는 네트워크 작업을 Response의 확장함수로 선언한 getValueOrThrow를 사용하도록 변경 * refactor: PlaceRepository에서 하는 네트워크 작업을 코루틴을 사용하도록 변경 * refactor: PlaceRepository 변경사항 적용 * style: ktlint 적용 * style: ktlint 적용 * feat: Setting 뷰 구현 (#331) * design: Setting 페이지 이동 버튼 생성 * feat: Setting 뷰 구현 * feat: 설정으로 이동하는 기능 구현 * feat: 뒤로가기 기능 추가 * feat: manifest에 activity 추가 * fix: History 뷰의 리사이클러뷰 image 오류 문제 해결 (#317) * fix: History 뷰dml 리사이클러뷰 image 오류 문제 해결 * design: 뒤로가기 버튼 위치 변경 * refactor: Adventure 도메인에 해당하는 네트워크 작업 코루틴으로 변경 (#315) * refactor: AdventureService의 함수들에 suspend 키워드 추가 * refactor: AdventureRepository의 함수들을 callback 구조에서 coroutine을 통한 반환값을 뱉는 형태로 변경 * refactor: AdventureRepository 변경에 따른ViewModel 변경 * refactor: 에러 상수화 (리뷰 반영) * feat: 장소 업로드 시 로딩 창이 뜨는 기능 구현 (#308) * feat: SingleLiveData 추가 * feat: 업로드 상태를 3가지로 관리하는 enum 클래스 생성 * feat: 전송이 완료될 때까지 로딩 로티가 보이는 기능 구현 * refactor: 전송 이벤트의 변경을 ViewModel에서만 관리하도록 변경 * refactor: 업로드 상태를 뷰모델에서 관리하도록 변경 * refactor: 뷰의 visibility 관리를 함수로 추출 * fix: 마이페이지 글자 깨지는 오류 수정 (#333) * chore: 전체 gitignore 지정 * fix: 마이페이지 글자 크기 계산 로직 오류 수정 * feat: AdventureHistoryViewModel 테스트 추가 (#340) * feat: ViewModelTest를 위한 Dependency 추가 * feat: LiveData 테스트를 위한 Class 추가 * test: 내 게임 결과 목록이 잘 불러와지는 지 확인 하는 뷰모델 테스트 추가 * style: ktlint 체크 * refactor: fake 객체 위치 변경 * feat: 회원 탈퇴 기능 구현 (#335) * feat: 서버와 회원 탈퇴 통신을 해주는 service 추가 * feat: 카카오 sdk의 unlink 메서드 추가 * feat: 회원 탈퇴 기능 추기 * feat: 회원탈퇴 버튼 클릭 시 회원 탈퇴가 되도록 하는 기능 구현 * feat: Service의 API 주소 수정 * refactor: Service의 반환 값 수정 * feat: 로그 수정 * refactor: ktlint 수정 * refactor: 메서드 반환 값이 non-nullable 하도록 수정 * refactor: 변수명 변경 * refactor: 에러 코드 상수화 * refactor: 회원 탈퇴 repository 메서드 내 runCatching 삭제 * feat: 회원 탈퇴 후 로그인 창으로 이동 시 백 스택에 쌓인 뷰를 리셋해주는 기능 구현 * feat: 회원 탈퇴 다이얼로그 생성 * feat: RankViewModel 테스트 추가 (#337) * feat: ViewModelTest를 위한 Dependency 추가 * feat: LiveData 테스트를 위한 Class 추가 * feat: 내 랭킹을 조회해오는 메서드 테스트 추가 * feat: 전체 랭킹을 조회 해오는 메서드 테스트 추가 * feat: 로그아웃 기능 구현 (#341) * feat: 로그아웃 요청 및 처리 로직 추가 * feat: DELETE 요청인 경우 body가 null이어도 에러를 반환하지 않도록 구현 * feat: 로그아웃 기능 버튼에 연결 * style: 로그아웃 성공시 출력할 문구 추가 * feat: 로그인 상태, 에러를 관리하는 라이브데이터 추가 * feat: 뷰모델 데이터 구독 및 적절한 처리 로직 구현 * chore: 사용하지 않는 파일 삭제 - Call의 확장함수 삭제 * feat: EncryptedSharedPreferences에 저장된 Access, Refresh 토큰 삭제 * feat: 로그아웃 클릭 시 다이얼로그창이 뜨는 기능 구현 * feat: 로그아웃 성공 후 뒤로가기 클릭 시 이전 액티비티가 나오지 않도록 기능 구현 * refactor: 문구 수정 * refactor: 코드 통일 * refactor: return 삭제 * refactor: GameService.endGame() 리팩토링 (#304) * refactor: game 도메인 패키지와 gaemResult 도메인 패키지 분리 * refactor: Game.endGame() 메서드 Game이 갖는 상태에 대해서만 처리하도록 변경 - ResultType, 즉 성공 실패 여부는 Game이 알 요소가 아니므로 메서드 내에서 계산하는 부분 삭제 * refactor: Game.endGame() 메서드 Game이 갖는 상태에 대해서만 처리하도록 변경 - ResultType, 즉 성공 실패 여부는 Game이 알 요소가 아니므로 메서드 내에서 계산하는 부분 삭제 * refactor: GameFinishService 게임 결과 생성하는 서비스 인터페이스 추가 및 GameResultService로 결과 생성하는 로직 구현 * refactor: PlayerService에 점수 더하는 로직 추가 * refactor: 서비스 메서드에 대한 NoRollbackFor 제거 후 새로운 트랜잭션 열어서 횟수 차감하는 서비스 로직 추가 * fix: NoRollbackFor 원복 * refactor: endGame() 메서드의 동작 분리 * chore: GameResultService 패키지 변경 * refactor: GameManageService 도메인 서비스 생성 * refactor: GameManageService 도메인 서비스 삭제하고 메서드 도메인으로 넣음 * refactor: Game 시도횟수 줄일 때 검증 추가 * test: GameTest endGame 관련 테스트 추가 * test: GameResultService 테스트 추가 * test: PlayerService 점수 추가 로직 테스트 추가 * test: GameServiceTest 게임 종료 로직 테스트 추가 * chore: 워크플로우 수정 * chore: 워크플로우 수정 * chore: 테스트 통과하도록 수정 * chore: game과 gameresult 패키지의 persistence 패키지를 repository로 변경 * chore: setDone() 메서드 네이밍 변경 * chore: 컨벤션으로 메서드 호출 순서대로 메서드 명시 * refactor: 종료되지 않은 게임에 대한 에러를 GameException으로 변경 * refactor: endGame 메서드 진행중 게임 검증을 제일 처음에 진행하도록 변경 * refactor: findPlayerById 재활용하도록 수정 * feat: AdventureResultViewModel 테스트 추가 (#338) * feat: ViewModelTest를 위한 Dependency 추가 * feat: LiveData 테스트를 위한 Class 추가 * test: 성공한 게임 결과가 잘 불러와지는 지 확인 하는 뷰모델 테스트 추가 * test: 실패한 게임 결과가 잘 불러와지는 지 확인 하는 뷰모델 테스트 추가 * test: 내 랭킹 결과가 잘 불러와지는 지 확인 하는 뷰모델 테스트 추가 * style: ktlint 체크 * style: ktlint 체크 * style: ktlint 체크 * refactor: 리포지터리에 의존성 주입 라이브러리 적용 (#349) * feat: Hilt 의존성 추가 * feat: by viewModels 를 사용하기 위해 의존성 추가 * refactor: Hilt를 사용하여 의존성 주입 자동화 * refactor: 불필요한 로깅 삭제 * refactor: datasource 의존성 주입 라이브러리 사용 (#352) * refactor: retrofit 의존성 주입 라이브러리 적용 (#353) * feat: DataSource Module 추가 * feat: Service Module 추가 * refactor: Repository에 의존성 주입을 자동화하기 위해 수정 * refactor: Repository에 Service 주입 자동화 * refactor: lint check * feat: 자동로그인 기능 구현 및 스플래시 분리 (#346) * chore: 전체 gitignore 지정 * feat: AuthInterceptor에서 소셜 로그인은 제외하는 로직 추가, Bearer prefix를 빼먹어서 붙임 * feat: bearer를 붙인 토큰을 반환하도록 변경 * feat: 서버 통신에 필요한 dto 생성 및 refresh api 요청 함수 작성 * feat: 토큰 refresh 요청을 위한 레포지토리 로직 작성 * design: splash가 분리되면서 splash layout design 변경 * feat: 스플래시에서 토큰을 리프레시하고 다음 화면을 정하는 분기처리 로직 추가 * feat: 스플래시 액티비티를 따로 분리함 * feat: AuthRepository에 refresh 기능 선언 추가 * fix: 마이페이지 글자 크기 계산 로직 오류 수정 * style: 로그 삭제 * feat: response의 바디를 한번 확인하면 다시 사용할 수 없는 (closed 이슈)를 해결 * feat: 스플래시 로직을 수정하여 토큰 여부에 따라 화면을 분기 * feat: 로그인 액티비티 시작하는 intent flag 수정 * feat: Interceptor 로직 수정 * feat: 토큰 확인용 api 변경 및 에러로깅 추가 * feat: 사용하지 않는 변수 삭제 * feat: UploadViewModel 테스트 추가 (#343) * feat: ViewModelTest를 위한 Dependency 추가 * feat: LiveData 테스트를 위한 Class 추가 * feat: Robolectric 추가 * test: UploadViewModel test 추가 * chore: 오타 삭제 * refactor: 양방향 데이터 바인딩을 통해 뷰모델에서 안드로이드 의존성 제거 * refactor: lint 적용 * refactor: 필요없는 코드 삭제 * refactor: 전송을 위한 데이터가 다 채워졌는지 검사를 뷰모델에서 진행하도록 변경 * test: 안드로이드 의존성 없이 테스트 진행 * test: 뷰모델 테스트 진행 * test: 테스트를 위한 의존성 추가 * test: 필요하지 않은 구문 삭제 * fix: 데브 브랜치 머지 워크 플로우 수정 * hotfix: PlayerRepository.findAll() 호출 시 N+1 문제 수정 (#360) * refactor: Player의 Member 필드 지연로딩으로 변경 * refactor: PlayerRepository.findAll() Fetch Join 진행 * test: 지연 로딩으로 인한 테스트 에러 임시 수정 * refactor: 디자인 수정을 위한 공통 요소 추가 (#378) * style: 메인 색상 추가 * style: 메인 글꼴 추가 - 던파 비트비트체 ver2 * style: 프로젝트 전체 색상 변경 * style: 아이콘 추가 * refactor: 폰트명 변경 * refactor: rect_main 삭제, 테마 배경색을 color로 지정 * feat: 장소 검수 기능 뼈대코드 설계 및 구현 (#373) * feat: 검수가 필요한 장소 엔티티 구현 * feat: 장소 검수 컨트롤러 구현 * feat: 장소 검수 Repository 구현 --------- Co-authored-by: kokodak * feat: 장소 좋아요 기능 도메인 설계 및 뼈대코드 작성 (#344) * feat: 좋아요/싫어요 뼈대코드 도메인 설계 * chore: 좋아요 도메인 패키지 이동 * feat: 장소 통계 도메인 생성 - 역정규화로 인한 통계 테이블 분리 * feat: 장소 좋아요 JpaRepository 생성 * test: PlaceLike 테스트 픽스쳐, 엔티티 빌더 생성 * feat: PlaceStatics JpaRepository 생성 * feat: PlaceStatics 생성자 추가 * test: PlaceStatistics 테스트 픽스처, 엔티티 빌더 생성 * chore: 불필요한 개행 삭제 --------- Co-authored-by: kokodak Co-authored-by: dooboocookie * fix: OkHttpClient의 interceptor를 AuthInterceptor로 변경 (#375) * feat: 장소 등록 검수 관리자 페이지 제작 및 인가 인터셉터 추가 (#374) * feat: 관리자 관련 인가처리하는 인터셉터 구현 * feat: HttpMethod 와 PathPattern에 따라서 인터셉터 연결 여부를 결정하는 인터셉터 추가 * feat: HttpMethod 와 PathPattern에 따라서 인터셉터 연결 여부를 결정하는 인터셉터 추가 * feat: HttpMethod를 가변인자로 받을 수 있고 안보내면 전체 HttpMethod를 다 매핑하도록 수정 * refactor: 기존 AuthInterceptor 매핑 PathMatcherInterceptor로 변경 * test: RequestPatternTest 추가 * test: PathMatcherInterceptorTest 추가 * feat: manager 페이지에 대해서 CORS 설정 * chore: 네이밍 변경 * refactor: Auth 헤더의 값이 id:password 들어오지 않을 때 검증 추가와 예외 정의 * refactor: Auth 헤더의 값이 id:password 들어오지 않을 때 검증 추가와 예외 정의 * refactor: stream 대신 asList로 리스트 변환하도록 변경 * refactor: PathMatcher를 관리하는 정적 클래스 생성 * test: Path는 맞고 Method는 틀린 경우 테스트 케이스 추가 * refactor: 메서드 호출 순서에 맞게 선언 순서 배치 * chore: stream 제거하고 새로 ArrayList 생성하도록 변경 * chore: Controller 목객체로 변경 * chore: trim()을 stip()으로 변경 * [BE] fix: 나의 통계 조회 시 성능 저하 문제 해결 (#364) * refactor: 게임 결과 조회 n+1 문제 수정 * feat: gameRepository 테스트코드 작성 * refactor: 쿼리문 가독성 있게 수정 * refactor: gameResult 의 game 객체 지연 로딩 추가 * fix: 테스트 오류 수정 * fix: 트렌젝셔널 추가 * refactor: 게임결과 조회시 목적지 조회도 함께 조회되도록 쿼리 수정 * fix: 게임 통계 조회 시 실패 게임도 거리 집계되는 문제 해결 (#382) * refactor: 게임 결과 조회 n+1 문제 수정 * feat: gameRepository 테스트코드 작성 * refactor: 쿼리문 가독성 있게 수정 * refactor: gameResult 의 game 객체 지연 로딩 추가 * fix: 테스트 오류 수정 * fix: 트렌젝셔널 추가 * fix: 실패한 게임 통계에 거리 잡히지 않도록 수정 * refactor: GameRecord 레코드로 변환 * test: 테스트 시, 거리에 대한 컬럼도 테스트 --------- Co-authored-by: chaewon121 Co-authored-by: chaewon121 <80631952+chaewon121@users.noreply.github.com> * fix: 모든 게임 결과 조회 시, 진행중 게임 있으면 예외 발생하는 사항 수정 (#383) * refactor: 게임 결과 조회 n+1 문제 수정 * feat: gameRepository 테스트코드 작성 * refactor: 쿼리문 가독성 있게 수정 * refactor: gameResult 의 game 객체 지연 로딩 추가 * fix: 테스트 오류 수정 * fix: 트렌젝셔널 추가 * fix: 게임을 통해 게임 결과를 가져오는 방식에서 게임결과들을 플레이어 아이디로 조회 * test: GameService의 게임 통계 테스트에 진행중 게임 데이터 추가하고 테스트 --------- Co-authored-by: chaewon121 Co-authored-by: chaewon121 <80631952+chaewon121@users.noreply.github.com> * Refactor/#391 모험 기록 뷰 디자인 변경 (#396) * design: color resource 추가 * design: 성공, 실패를 보여주는 라벨 추가 * design: 뷰 제목 변경을 위해 strings resource 변경 * design: drawable resource 이름변경으로 인한 코드 수정 * design: 폰트 변경 * design: color resource 이름 변경 * feat: 앱 강제 업데이트 기능 구현 (#400) * feat: firebase-config 의존성 추가 * feat: 확장함수 패키지 생성, 이동 및 추가 * feat: 확인 다이얼로그 추가 - 강제 업데이트를 위해 외부가 클릭되어도 다이얼로그가 꺼지지 않도록 구현 * feat: 강제 업데이트 기능 구현 * refactor: 함수명 변경 * refactor: text gravity 수정 * refactor: 다이얼로그 title 글씨 크기 수정 * refactor: 다이얼로그 패키지 이동 * refactor: 로그인 뷰 디자인 변경 (#399) * design: 빌딩과 별 drawable 추가 * design: strings resource 변경 * design: 로그인 디자인 변경 * refactor: 불필요한 상태바 설정 코드 삭제 * refactor: 업로드 뷰 디자인 변경 (#381) * refactor: 업로드 뷰 디자인 변경 * refactor: 사용하지 않는 변수 삭제 * refactor: AppCompatButton 사용해서 배경색 지정하도록 변경 * refactor: editText에 hint 추가 * refactor: ktlint * refactor: 버튼 배경 변경 * refactor: editText 밑줄 삭제 * refactor: editText marginTop 수정 * refactor: 이미지뷰 marginTop 수정 * fix: 버튼 id 수정 * refactor: 사용하지 않는 함수 삭제 * refactor: 설정 뷰 디자인 변경 (#397) * design: 폰트 적용 * design: strings resource 추가 * design: 빌딩과 별 drawable 추가 * design: 백그라운드에 빌딩과 별 이미지 추가 * refactor: strings resource 띄어쓰기 수정 * [BE] refactor: 로깅 구체화 하기 (#318) * feat: 로그 필터 구현 * fix: application prod를 local로 수정 * feat: logback gradle 의존성 추가 * feat: 기존 로깅 파일 삭제 * feat: logback xml 파일 설정 * feat: 로그 필터 구현 * feat: mdc 필터 구현 * feat: 필터 빈등록 * feat: exceptionHandler 수정 * feat: 깃허브 설정 * refactor: mdc 이넘 추가 * refactor: info 로그 출력 message추가 * refactor: 추가 메서드 삭제 * refactor: 사용하지 않는 상수 삭제 * chore: 쿼리 튜닝 및 성능 조회를 위한 변경사항 * chore: 쿼리 정보 로그 삭제 * feat: 로깅 추가 (#359) * feat: 로그 필터 구현 * fix: application prod를 local로 수정 * feat: logback gradle 의존성 추가 * feat: 기존 로깅 파일 삭제 * feat: logback xml 파일 설정 * feat: 로그 필터 구현 * feat: mdc 필터 구현 * feat: 필터 빈등록 * feat: exceptionHandler 수정 * feat: 깃허브 설정 * refactor: mdc 이넘 추가 * refactor: info 로그 출력 message추가 * refactor: 추가 메서드 삭제 * refactor: 사용하지 않는 상수 삭제 * chore: 쿼리 튜닝 및 성능 조회를 위한 변경사항 * chore: 쿼리 정보 로그 삭제 --------- Co-authored-by: chaewon121 * fix: 워크플로우 수정 * hotfix: PlayerRepository.findAll() 호출 시 N+1 문제 수정 (#360) * refactor: Player의 Member 필드 지연로딩으로 변경 * refactor: PlayerRepository.findAll() Fetch Join 진행 * test: 지연 로딩으로 인한 테스트 에러 임시 수정 * refactor: 코드컨벤션 젹용 * refactor: 날짜 수정 * refactor: mdc 필터 제거 * refactor: 사용하지 않는 mdc토큰 제거 * refactor: 로깅 전략 변경에 따른 코드 수정 * refactor: xml파일에서 mdc 출력 삭제 * refactor: 환경분리 및 패턴 수정 * fix: 환경분리 오류 수정 * refactor: mdc 요소 추가 * chore: 워크플로우 수정 * fix: 트렌젝션 테스트에 추가 * fix: 에러로그 출력 오류 수 * refactor: info로그 수정 * refactor: warn로그 수정 * refactor: error로그 수정 * refactor: 사용하지 않는 enum 삭제 * refactor: 주석 제거 * refactor: 패키지 이동 * refactor: 사용하지 않는 코드 제거 * refactor: warn 레벨 info 로 수정 --------- Co-authored-by: dooboocookie Co-authored-by: dooboocookie <79090478+dooboocookie@users.noreply.github.com> * refactor: my page 뷰 디자인 변경 (#395) * refactor: 통계 뷰 변경, 리사이클러뷰 사용 * refactor: 패키지 구조 변경 * refactor: 리사이클러뷰 반영 * refactor: 다른이름의 같은 속성의 파일을 하나로 사용하도록 변경 * refactor: 아이템마다 배경이 다르게 지정되도록 변경 * refactor: StatisticsModel 생성 코드를 StatisticsModel 내부로 이동 * refactor: String 상수화 * refactor: 내가 추가한 장소 뷰 디자인 수정 * refactor: 마진 수정 * refactor: 내가 추가한 장소 커스텀 뷰 수정 - 뷰타입에 따라 분리하지 않음 - 리사이클러뷰에서 뷰홀더를 하나로 사용 * refactor: 리사이클러뷰 가로 스크롤로 변경 * refactor: 글씨 크기, 마진 변경 * feat: 장소를 추가한 적 없는 유저에게는 다른 뷰가 보이도록 함 * refactor: 마진 수정 * refactor: ktlint * refactor: drawable 변경 * refactor: 아이콘 변경 * refactor: apply 적용 * refactor: marginTop 추가 * refactor: 모험 결과 뷰 디자인 변경 (#402) * design: 성공, 실패를 나타내주는 라벨 drawable 생성 * design: main blue 색을 이용한 그라데이션 배경 resource 추가 * design: 버튼 drawable resource 추가 * design: 모험 결과 디자인 변경 * refactor: string 한글로 변경 * refactor: margin 변경 * refactor: drawable 이름 변경 * fix: 장소 추천 범위 정상화 (#411) * fix: 장소 추천 범위 300m로 정상화 * test: 300미터 추천 못할 떄 테스트 보완 * refactor: 게임 시작 뷰 디자인 변경 (#408) * chore: 전체 gitignore 지정 * feat: 버튼 이미지 추가 * feat: BeginActivity에서 자주 쓰이는 Text style 생성 * feat: BeginActivity 뷰 구현 중 * feat: button drawable을 png에서 vector asset으로 변경 및 네이밍 변경 * feat: BeginAdventureActivity 뷰 레이아웃 변경 - setting 버튼 추가 - 빌딩 이미지 화면 사이즈에 맞춤 - 기타 마진 및 패딩 변경 * feat: BeginAdventureActivity 변경된 뷰에 따라 클릭리스너 연결 코드 변경 * feat: 다이얼로그 버튼 배경 변경 * feat: 임시로 설정해놓은 visibility 원상복구 * feat: 사용하지 않는 resource 삭제 * feat: bg_yellow_button drawable 변경 * feat: 사용하지 않는 파일 삭제 * feat: 버튼 백그라운드 적용 * feat: 버튼 백그라운드 적용 * feat: 업로드 화면에서 뒤로가기 기능 구현 (#413) * feat: 게임 입장 시 사진이 먼저 뜨는 기능 구현 (#407) * feat: 검수 중인 장소에 대한 장소 등록 허가 API 구현 (#398) * feat: 임시용 TemporaryPlaceService 생성 * refactor: 바뀐 요구사항에 맞게 createPlace 로직 리팩터링 * refactor: 바뀐 API 명세에 따라 컨트롤러 로직 리팩터링 * fix: 잘못된 base64 디코딩 과정 수정 * feat: 장소 등록 API에 매니저 인터셉터 적용 * feat: 등록할 장소 기준 반경 20M 내에 또 다른 등록된 장소가 존재한다면 예외를 터뜨리도록 수정 * test: 주변 반경 20M 내에 등록된 장소가 있을 때 예외 발생 확인을 위한 테스트 코드 추가 * refactor: collect() 에서 toList() 로 변경 * chore: 주석 삭제 * feat: 검수 중인 장소에 대한 등록 승인 거절 API 구현 (#401) * refactor: 바뀐 API 명세에 따라 컨트롤러 로직 리팩터링 * feat: 리베이스 충돌 해결 * feat: 검수 장소에 대한 테스트 빌더 구현 * feat: 검수 장소 삭제 API 구현 * feat: 검수 장소 삭제 API 에 ManagerAuthInterceptor 적용 * feat: 검수 장소에서 Player 에 대해 지연로딩 적용 * test: mocking 삭제 및 상태 검증 테스트로 변경 * test: 행위 검증에서 상태 검증 테스트로 변경 * feat: 검수할 장소 등록/ 조회 API 구현 (#404) * fix : ManagerAuthInterceptor 디코딩 수정 * feat: 인터셉터에 검수중 장소 조회 path 등록 * feat: 검수할 장소 등록 기능 추가 * feat: 검수할 장소 등록 API 구현 * feat: 검수할 장소 목록 조회 기능 구현 * feat: 검수할 장소 목록 조회 API 구현 * fix: 서비스 객체 빈 등록 및 인터셉터 추가 * test: TemporaryPlaceBuilder 및 TemporaryPlaceFixture 작성 * test: ManagerAuthInterceptorTest 디코딩 문제 수정 * feat: TemporaryPlace예외 처리 추가 및 적용 * test: 검수할 장소 등록 테스트 추가 * test: 필요없는 테스트 삭제 * test: 20미터에 이미 등록된 목적지가 있다면 예외응답 테스트 * refactor: 필요없는 메서드 삭제 * refactor: PlaceCheckService 패키지 변경 및 예외 수정 * test: 검수할 장소 목록 조회 기능 테스트 * refactor: 콘솔 로깅 디버그 레벨로 변경 * refactor: TemporaryPlace관련 조회 쿼리 n+1문제 리팩터링 * refactor: TemporaryPlaceResponse에 플레이어 정보 추가 * chore: 개행 제거 * test: TemporaryPlaceControllerTest 수정 * refactor: 서비스 메서드명 변경 * refactor: TemporaryPlaceResponse 필드명 변경 * refactor: 검수할 장소 조회 오래된 순으로 정렬 순서 변경 --------- Co-authored-by: dooboocookie * chore: dev_backend 커밋 내역 Merge * chore: 워크플로우 수정 chore: 로그 경로 수정 * refactor: 버튼 디자인 일관성 있도록 변경 (#417) * refactor: 버튼 drawable 추가 * refactor: 버튼 background 변경 * refactor: 버튼 background 변경 * refactor: 버튼 background 변경 * refactor: 버튼 background 변경 * refactor: 게임 시작 뷰 디자인 변경 (#408) * chore: 전체 gitignore 지정 * feat: 버튼 이미지 추가 * feat: BeginActivity에서 자주 쓰이는 Text style 생성 * feat: BeginActivity 뷰 구현 중 * feat: button drawable을 png에서 vector asset으로 변경 및 네이밍 변경 * feat: BeginAdventureActivity 뷰 레이아웃 변경 - setting 버튼 추가 - 빌딩 이미지 화면 사이즈에 맞춤 - 기타 마진 및 패딩 변경 * feat: BeginAdventureActivity 변경된 뷰에 따라 클릭리스너 연결 코드 변경 * feat: 다이얼로그 버튼 배경 변경 * feat: 임시로 설정해놓은 visibility 원상복구 * feat: 사용하지 않는 resource 삭제 * feat: bg_yellow_button drawable 변경 * feat: 사용하지 않는 파일 삭제 * feat: 버튼 백그라운드 적용 * feat: 버튼 백그라운드 적용 * feat: 업로드 화면에서 뒤로가기 기능 구현 (#413) * feat: 게임 입장 시 사진이 먼저 뜨는 기능 구현 (#407) * refactor: 불필요한 속성 제거 * refactor: 불필요한 속성 제거 * refactor: guideline 추가해 뷰 배치 --------- Co-authored-by: k_dragonm <78788847+briandr97@users.noreply.github.com> Co-authored-by: krrong * refactor: 스플래시 디자인 변경 (#416) * refactor: 뷰 id 변경 * refactor: 안드로이드 12에서 나오는 스플래시가 보이지 않는 것처럼 구현 * refactor: 불필요한 코드 삭제 * refactor: warning 제거 애노테이션 추가 * refactor: 불필요한 파일 삭제 * refactor: 기본 스플래시를 사용하도록 변경 * refactor: 스플래시 액티비티 디자인 변경 * refactor: 아이콘 변경 * refactor: 인게임 뷰 디자인 변경 (#418) * chore: 전체 gitignore 지정 * feat: 목적지와의 남은 거리를 나타내는 텍스트 리디자인 * feat: 아이콘 생성 * feat: strings resource화 * feat: 인게임 뷰 리디자인 적용 * feat: 폴라로이드 다이얼로그 디자인 변경 * feat: NaagaAlertDialog의 positive 버튼과 negative 버튼의 위치 변경 및 색상 변경 * feat: 버튼 백그라운드 이미지 적용 * feat: 로티 visibility 원상복구 * feat: 로딩시 거리가 null로 보여지는 것을 0으로 변경 * feat: 버튼 마진값 조절 * feat: 사용하지 않는 아이콘 삭제 * refactor: NaagaAlertDialog와 ConfirmDialog 통일 (#421) * chore: 전체 gitignore 지정 * feat: NaagaAlertDialog에서 Cancelable 여부를 정할 수 있도록 변경 * feat: ConfirmDialog를 삭제하고 AlertDialog로 대체 * feat: 함수 네이밍 변경 및 사용하지 않는 함수 삭제 * chore: 다이얼로그를 한 패키지에 모음 * feat: 사용되지 않는 다이얼로그의 layout 삭제 * refactor: 장소 등록 api 수정 (#369) * refactor: 장소 등록을 검수할 수 있도록 검수중으로 등록한다 * refactor: 변경된 API 명세 반영 * refactor: string 변경 * feat: 장소등록 성공시 토스트 메시지를 띄워줌 * refactor: 인게임 버튼 drawable resource 변경 (#424) * chore: 전체 gitignore 지정 * feat: 버튼의 배경 resource를 변경 * feat: 하단 버튼들의 margin값 변경 * refactor: permission dialog 통일 (#426) * refactor: 다이얼로그 패키지 이동 * refactor: 다이얼로그 패키지 이동 * refactor: 다이얼로그 폰트 변경 * refactor: 사용하지 않는 파일 삭제 * refactor: string 정리 * refactor: 함수 분리 * feat: 문의하기 기능 구현 (#427) * feat: strings resource 추가 * feat: 문의하기를 누르면 나아가 공식 계정으로 이메일이 보내 지는 기능 구현 * refactor: 이메일 제목 strings에 추가 * feat: 버전코드 및 버전이름 수정 (#431) --------- Co-authored-by: zillionme <100172683+zillionme@users.noreply.github.com> Co-authored-by: kokodakadokok <45879491+kokodak@users.noreply.github.com> Co-authored-by: dooboocookie Co-authored-by: chaewon121 Co-authored-by: zillionme Co-authored-by: k_dragonm <78788847+briandr97@users.noreply.github.com> Co-authored-by: chaewon121 <80631952+chaewon121@users.noreply.github.com> Co-authored-by: hyunji <83613106+hyunji1203@users.noreply.github.com> Co-authored-by: kokodak Co-authored-by: dooboocookie <79090478+dooboocookie@users.noreply.github.com> Co-authored-by: hyunji1203 Co-authored-by: kokodak --- .github/workflows/android_ci.yml | 2 +- .../workflows/backend_dev_merge_workflow.yml | 3 +- .github/workflows/backend_dev_pr_workflow.yml | 15 +- .../workflows/backend_prod_merge_workflow.yml | 23 +- .../workflows/backend_rel_merge_workflow.yml | 60 ++ .gitignore | 7 + android/app/build.gradle | 40 +- android/app/src/main/AndroidManifest.xml | 20 +- .../app/src/main/ic_launcher-playstore.png | Bin 0 -> 47163 bytes .../java/com/now/naaga/NaagaApplication.kt | 2 + .../data/firebase/analytics/ButtonNames.kt | 2 +- .../firebase/analytics/ServerErrorNames.kt | 1 + .../now/naaga/data/local/AuthDataSource.kt | 1 + .../naaga/data/local/DefaultAuthDataSource.kt | 13 +- .../com/now/naaga/data/mapper/PlaceMapper.kt | 11 + .../now/naaga/data/remote/dto/PostPlaceDto.kt | 20 + .../naaga/data/remote/dto/RefreshTokenDto.kt | 10 + .../data/remote/retrofit/AuthInterceptor.kt | 73 +- .../data/remote/retrofit/RetrofitFactory.kt | 17 +- .../data/remote/retrofit/RetrofitUtil.kt | 59 -- .../naaga/data/remote/retrofit/ServicePool.kt | 16 - .../retrofit/service/AdventureService.kt | 36 +- .../remote/retrofit/service/AuthService.kt | 13 +- .../remote/retrofit/service/PlaceService.kt | 22 +- .../remote/retrofit/service/RankService.kt | 8 +- .../retrofit/service/StatisticsService.kt | 4 +- .../repository/DefaultAdventureRepository.kt | 132 +-- .../data/repository/DefaultAuthRepository.kt | 48 +- .../data/repository/DefaultPlaceRepository.kt | 70 +- .../data/repository/DefaultRankRepository.kt | 38 +- .../repository/DefaultStatisticsRepository.kt | 21 +- .../java/com/now/naaga/di/DataSourceModule.kt | 19 + .../java/com/now/naaga/di/RepositoryModule.kt | 50 + .../java/com/now/naaga/di/ServiceModule.kt | 59 ++ .../AdventureHistoryActivity.kt | 12 +- .../AdventureHistoryViewModel.kt | 38 +- .../AdventureHistoryViewHolder.kt | 4 +- .../AdventureResultActivity.kt | 11 +- .../AdventureResultViewModel.kt | 62 +- .../beginadventure/BeginAdventureActivity.kt | 38 +- .../beginadventure/BeginAdventureViewModel.kt | 37 +- .../presentation/common/dialog/DialogType.kt | 5 + .../dialog}/NaagaAlertDialog.kt | 19 +- .../dialog/PermissionDialog.kt} | 65 +- .../dialog}/PolaroidDialog.kt | 2 +- .../naaga/presentation/login/LoginActivity.kt | 33 +- .../presentation/login/LoginViewModel.kt | 19 +- .../login/LoginViewModelFactory.kt | 18 - .../presentation/mypage/MyPageActivity.kt | 28 +- .../presentation/mypage/MyPageAdapter.kt | 35 - .../presentation/mypage/MyPageCustomGrid.kt | 53 - .../presentation/mypage/MyPageItemUiModel.kt | 19 - .../naaga/presentation/mypage/MyPageMapper.kt | 39 +- .../presentation/mypage/MyPageViewHolder.kt | 42 - .../presentation/mypage/MyPageViewModel.kt | 69 +- .../mypage/place/MyPageCustomGrid.kt | 34 + .../mypage/place/MyPagePlaceAdapter.kt | 22 + .../mypage/place/MyPagePlaceViewHolder.kt | 27 + .../statistics/MyPageStatisticsAdapter.kt | 20 + .../statistics/MyPageStatisticsViewHolder.kt | 27 + .../onadventure/OnAdventureActivity.kt | 20 +- .../onadventure/OnAdventureViewModel.kt | 107 +- .../naaga/presentation/rank/RankActivity.kt | 7 +- .../naaga/presentation/rank/RankViewModel.kt | 60 +- .../presentation/setting/SettingActivity.kt | 120 +++ .../presentation/setting/SettingViewModel.kt | 47 + .../presentation/splash/SplashActivity.kt | 97 +- .../presentation/splash/SplashViewModel.kt | 53 +- .../uimodel/model/MyPagePlaceUiModel.kt | 6 + .../uimodel/model/StatisticsUiModel.kt | 43 + .../upload/CameraPermissionDialog.kt | 66 -- .../presentation/upload/UploadActivity.kt | 157 +-- .../presentation/upload/UploadFactory.kt | 19 - .../naaga/presentation/upload/UploadStatus.kt | 5 + .../presentation/upload/UploadViewModel.kt | 100 +- .../src/main/java/com/now/naaga/util/Event.kt | 27 + .../java/com/now/naaga/util/KakaoLoginUtil.kt | 14 +- .../now/naaga/util/MutableSingleLiveData.kt | 16 + .../java/com/now/naaga/util/ResponseUtil.kt | 45 + .../java/com/now/naaga/util/SingleLiveData.kt | 33 + .../naaga/util/{ => extension}/IntentExt.kt | 2 +- .../naaga/util/extension/PackageManagerExt.kt | 14 + android/app/src/main/naaga_icon-playstore.png | Bin 53823 -> 44734 bytes .../src/main/res/drawable/bg_blue_button.xml | 52 + .../main/res/drawable/bg_blue_gradient.xml | 16 + .../main/res/drawable/bg_yellow_button.xml | 55 ++ .../res/drawable/bg_yellow_button_thick.xml | 55 ++ .../main/res/drawable/ic_all_adventure.xml | 69 ++ .../app/src/main/res/drawable/ic_building.xml | 11 + .../main/res/drawable/ic_building_full.xml | 10 + .../main/res/drawable/ic_camera_dialog.xml | 8 +- .../app/src/main/res/drawable/ic_compass.xml | 9 + android/app/src/main/res/drawable/ic_drop.xml | 9 - .../main/res/drawable/ic_fail_adventure.xml | 15 + .../{ic_fail.xml => ic_fail_label.xml} | 0 android/app/src/main/res/drawable/ic_flag.xml | 10 + android/app/src/main/res/drawable/ic_hint.xml | 8 - .../res/drawable/ic_launcher_foreground.xml | 728 ++++++++++++++ .../main/res/drawable/ic_location_dialog.xml | 29 +- .../src/main/res/drawable/ic_logo_purple.xml | 46 - .../src/main/res/drawable/ic_marker_east.xml | 35 +- .../src/main/res/drawable/ic_marker_north.xml | 35 +- .../src/main/res/drawable/ic_marker_south.xml | 35 +- .../src/main/res/drawable/ic_marker_west.xml | 35 +- .../main/res/drawable/ic_message_received.xml | 14 + .../src/main/res/drawable/ic_message_send.xml | 14 + .../app/src/main/res/drawable/ic_mypage.xml | 14 - .../src/main/res/drawable/ic_naaga_logo.xml | 728 ++++++++++++++ .../app/src/main/res/drawable/ic_setting.xml | 10 + android/app/src/main/res/drawable/ic_star.xml | 910 ++++++++++++++++++ android/app/src/main/res/drawable/ic_stop.xml | 16 + .../app/src/main/res/drawable/ic_success.xml | 6 - .../res/drawable/ic_success_adventure.xml | 14 + .../main/res/drawable/ic_success_label.xml | 6 + .../app/src/main/res/drawable/ic_upload.xml | 9 - .../res/drawable/naaga_icon_background.xml | 78 ++ .../res/drawable/naaga_icon_foreground.xml | 733 ++++++++++++++ .../main/res/drawable/oval_blue_gradient.xml | 7 + .../res/drawable/oval_orange_gradient.xml | 7 + .../res/drawable/oval_yellow_gradient.xml | 7 + .../main/res/drawable/rect_main_gradient.xml | 8 - .../res/drawable/rect_radius_small_white.xml | 6 - android/app/src/main/res/font/main_font.otf | Bin 0 -> 1836848 bytes .../res/layout/activity_adventure_history.xml | 17 +- .../res/layout/activity_adventure_result.xml | 108 +-- .../res/layout/activity_begin_adventure.xml | 131 +-- .../src/main/res/layout/activity_login.xml | 46 +- .../src/main/res/layout/activity_my_page.xml | 99 +- .../main/res/layout/activity_on_adventure.xml | 309 ++++-- .../app/src/main/res/layout/activity_rank.xml | 1 - .../src/main/res/layout/activity_setting.xml | 140 +++ .../src/main/res/layout/activity_splash.xml | 15 +- .../src/main/res/layout/activity_upload.xml | 174 ++-- .../main/res/layout/custom_mypage_grid.xml | 17 +- .../res/layout/custom_mypage_grid_empty.xml | 16 +- .../res/layout/dialog_location_permission.xml | 56 -- .../main/res/layout/dialog_naaga_alert.xml | 22 +- ...a_permission.xml => dialog_permission.xml} | 27 +- .../src/main/res/layout/dialog_polaroid.xml | 81 +- .../app/src/main/res/layout/item_history.xml | 13 +- android/app/src/main/res/layout/item_rank.xml | 2 +- .../res/layout/rv_mypage_item_adventure.xml | 93 ++ .../main/res/layout/rv_mypage_item_place.xml | 53 +- .../res/layout/rv_mypage_item_statistics.xml | 75 -- .../res/layout/skeleton_begin_adventure.xml | 97 -- .../main/res/mipmap-anydpi-v26/naaga_icon.xml | 4 +- .../mipmap-anydpi-v26/naaga_icon_round.xml | 4 +- .../src/main/res/mipmap-hdpi/naaga_icon.png | Bin 3125 -> 0 bytes .../src/main/res/mipmap-hdpi/naaga_icon.webp | Bin 0 -> 2580 bytes .../res/mipmap-hdpi/naaga_icon_foreground.png | Bin 5838 -> 0 bytes .../main/res/mipmap-hdpi/naaga_icon_round.png | Bin 5490 -> 0 bytes .../res/mipmap-hdpi/naaga_icon_round.webp | Bin 0 -> 3812 bytes .../src/main/res/mipmap-mdpi/naaga_icon.png | Bin 1910 -> 0 bytes .../src/main/res/mipmap-mdpi/naaga_icon.webp | Bin 0 -> 1682 bytes .../res/mipmap-mdpi/naaga_icon_foreground.png | Bin 3444 -> 0 bytes .../main/res/mipmap-mdpi/naaga_icon_round.png | Bin 3189 -> 0 bytes .../res/mipmap-mdpi/naaga_icon_round.webp | Bin 0 -> 2328 bytes .../src/main/res/mipmap-xhdpi/naaga_icon.png | Bin 4587 -> 0 bytes .../src/main/res/mipmap-xhdpi/naaga_icon.webp | Bin 0 -> 3598 bytes .../mipmap-xhdpi/naaga_icon_foreground.png | Bin 8319 -> 0 bytes .../res/mipmap-xhdpi/naaga_icon_round.png | Bin 8117 -> 0 bytes .../res/mipmap-xhdpi/naaga_icon_round.webp | Bin 0 -> 5422 bytes .../src/main/res/mipmap-xxhdpi/naaga_icon.png | Bin 7704 -> 0 bytes .../main/res/mipmap-xxhdpi/naaga_icon.webp | Bin 0 -> 5480 bytes .../mipmap-xxhdpi/naaga_icon_foreground.png | Bin 14073 -> 0 bytes .../res/mipmap-xxhdpi/naaga_icon_round.png | Bin 13399 -> 0 bytes .../res/mipmap-xxhdpi/naaga_icon_round.webp | Bin 0 -> 8390 bytes .../main/res/mipmap-xxxhdpi/naaga_icon.png | Bin 11125 -> 0 bytes .../main/res/mipmap-xxxhdpi/naaga_icon.webp | Bin 0 -> 7296 bytes .../mipmap-xxxhdpi/naaga_icon_foreground.png | Bin 21165 -> 0 bytes .../res/mipmap-xxxhdpi/naaga_icon_round.png | Bin 19646 -> 0 bytes .../res/mipmap-xxxhdpi/naaga_icon_round.webp | Bin 0 -> 11376 bytes android/app/src/main/res/values/colors.xml | 13 +- android/app/src/main/res/values/strings.xml | 94 +- android/app/src/main/res/values/styles.xml | 14 +- android/app/src/main/res/values/themes.xml | 16 +- .../naaga/AdventureHistoryViewModelTest.kt | 119 +++ .../now/naaga/AdventureResultViewModelTest.kt | 165 ++++ .../java/com/now/naaga/ExampleUnitTest.kt | 16 - .../test/java/com/now/naaga/HiltTestRunner.kt | 16 + .../java/com/now/naaga/RankViewModelTest.kt | 117 +++ .../java/com/now/naaga/UploadViewModelTest.kt | 110 +++ .../UploadViewModelTestWithRobolectric.kt | 64 ++ .../java/com/now/naaga/getOrAwaitValue.kt | 32 + android/build.gradle | 1 + .../domain/repository/AdventureRepository.kt | 33 +- .../now/domain/repository/AuthRepository.kt | 7 +- .../now/domain/repository/PlaceRepository.kt | 15 +- .../now/domain/repository/RankRepository.kt | 7 +- .../domain/repository/StatisticsRepository.kt | 2 +- android/naaga | Bin 0 -> 2500 bytes backend/build.gradle | 4 + .../naaga/auth/application/AuthService.java | 4 +- .../auth/exception/AuthExceptionType.java | 7 +- .../interceptor/ManagerAuthInterceptor.java | 64 ++ .../now/naaga/common/config/BeanConfig.java | 22 +- .../now/naaga/common/config/FilterConfig.java | 23 + .../naaga/common/config/HibernateConfig.java | 23 + .../now/naaga/common/config/WebConfig.java | 65 +- .../exception/ControllerExceptionHandler.java | 28 +- .../naaga/common/presentation/LogFilter.java | 51 + .../naaga/common/presentation/MdcToken.java | 17 + .../common/presentation/QueryCounter.java | 30 + .../common/presentation/QueryInspector.java | 31 + .../interceptor/RequestMatcher.java | 18 + .../RequestMatcherInterceptor.java | 80 ++ .../interceptor/RequestPattern.java | 15 + .../game/application/GameFinishService.java | 8 + .../naaga/game/application/GameService.java | 69 +- .../dto/CreateGameResultCommand.java | 13 + .../java/com/now/naaga/game/domain/Game.java | 115 ++- .../com/now/naaga/game/domain/GameRecord.java | 83 +- .../com/now/naaga/game/domain/ResultType.java | 7 - .../com/now/naaga/game/domain/Statistic.java | 14 +- .../game/exception/GameExceptionType.java | 14 +- .../exception/GameNotArrivalException.java | 8 - .../exception/GameNotFinishedException.java | 8 + .../presentation/dto/GameResultResponse.java | 26 +- .../game/repository/GameResultRepository.java | 10 - .../application/GameResultService.java | 55 ++ .../domain/GameResult.java | 16 +- .../naaga/gameresult/domain/ResultType.java | 23 + .../gamescore/FailResultScorePolicy.java} | 8 +- .../gamescore/ResultScoreCalculator.java} | 14 +- .../domain/gamescore/ResultScorePolicy.java} | 6 +- .../gamescore/SuccessResultScorePolicy.java} | 8 +- .../exception/GameResultException.java | 18 + .../exception/GameResultExceptionType.java | 41 + .../repository/GameResultRepository.java | 16 + .../com/now/naaga/like/domain/PlaceLike.java | 96 ++ .../now/naaga/like/domain/PlaceLikeType.java | 8 + .../like/repository/PlaceLikeRepository.java | 8 + .../member/application/MemberService.java | 5 +- .../{ => dto}/CreateMemberCommand.java | 2 +- .../{ => dto}/DeleteMemberCommand.java | 2 +- .../naaga/place/application/PlaceService.java | 49 +- .../application/dto/CreatePlaceCommand.java | 18 +- .../com/now/naaga/place/domain/Place.java | 12 +- .../naaga/place/domain/PlaceCheckService.java | 5 +- .../place/domain/PlaceRecommendService.java | 3 +- .../place/presentation/PlaceController.java | 13 +- .../presentation/dto/CreatePlaceRequest.java | 6 +- .../place/presentation/dto/PlaceResponse.java | 5 +- .../placestatistics/PlaceStatistics.java | 81 ++ .../repository/PlaceStatisticsRepository.java | 7 + .../player/application/PlayerService.java | 22 +- .../application/dto/AddScoreCommand.java | 7 + .../com/now/naaga/player/domain/Player.java | 2 +- .../repository/PlayerRepository.java | 5 + .../player/presentation/PlayerController.java | 2 +- .../application/TemporaryPlaceService.java | 65 ++ .../dto/CreateTemporaryPlaceCommand.java | 24 + .../temporaryplace/domain/TemporaryPlace.java | 113 +++ .../TemporaryPlaceController.java | 55 ++ .../dto/CreateTemporaryPlaceRequest.java | 10 + .../dto/TemporaryPlaceResponse.java | 35 + .../repository/TemporaryPlaceRepository.java | 15 + backend/src/main/resources/application.yml | 4 +- .../src/main/resources/console-appender.xml | 8 - .../src/main/resources/db-file-appender.xml | 22 - backend/src/main/resources/error-appender.xml | 21 + backend/src/main/resources/error-console.xml | 16 + .../main/resources/error-file-appender.xml | 22 - backend/src/main/resources/info-appender.xml | 21 + backend/src/main/resources/info-console.xml | 16 + .../src/main/resources/info-file-appender.xml | 22 - backend/src/main/resources/logback-spring.xml | 55 -- backend/src/main/resources/logback.xml | 41 + backend/src/main/resources/security | 2 +- backend/src/main/resources/warn-appender.xml | 21 + backend/src/main/resources/warn-console.xml | 16 + .../src/main/resources/warn-file-appender.xml | 22 - .../ManagerAuthInterceptorTest.java | 66 ++ .../common/builder/GameResultBuilder.java | 6 +- .../common/builder/PlaceLikeBuilder.java | 68 ++ .../builder/PlaceStatisticsBuilder.java | 49 + .../common/builder/TemporaryPlaceBuilder.java | 79 ++ .../common/fixture/PlaceLikeFixture.java | 11 + .../fixture/PlaceStatisticsFixture.java | 10 + .../common/fixture/TemporaryPlaceFixture.java | 19 + .../RequestMatcherInterceptorTest.java | 104 ++ .../interceptor/RequestPatternTest.java | 52 + .../game/application/GameServiceTest.java | 111 ++- .../game/application/HintServiceTest.java | 8 + .../com/now/naaga/game/domain/GameTest.java | 125 ++- ...cyTest.java => ResultScorePolicyTest.java} | 8 +- .../now/naaga/game/domain/StatisticTest.java | 3 +- ...st.java => ResultScoreCalculatorTest.java} | 15 +- .../game/presentation/GameControllerTest.java | 9 +- .../application/GameResultServiceTest.java | 93 ++ .../repository/GameResultRepositoryTest.java | 85 ++ .../place/application/PlaceServiceTest.java | 115 +++ .../presentation/PlaceControllerTest.java | 146 +-- .../naaga/place/service/PlaceServiceTest.java | 93 ++ .../player/application/PlayerServiceTest.java | 24 + .../TemporaryPlaceServiceTest.java | 49 + ...0\355\204\260\355\232\214\352\264\200.png" | Bin .../TemporaryPlaceControllerTest.java | 174 ++++ 298 files changed, 9660 insertions(+), 2957 deletions(-) create mode 100644 .github/workflows/backend_rel_merge_workflow.yml create mode 100644 .gitignore create mode 100644 android/app/src/main/ic_launcher-playstore.png create mode 100644 android/app/src/main/java/com/now/naaga/data/remote/dto/PostPlaceDto.kt create mode 100644 android/app/src/main/java/com/now/naaga/data/remote/dto/RefreshTokenDto.kt delete mode 100644 android/app/src/main/java/com/now/naaga/data/remote/retrofit/RetrofitUtil.kt delete mode 100644 android/app/src/main/java/com/now/naaga/data/remote/retrofit/ServicePool.kt create mode 100644 android/app/src/main/java/com/now/naaga/di/DataSourceModule.kt create mode 100644 android/app/src/main/java/com/now/naaga/di/RepositoryModule.kt create mode 100644 android/app/src/main/java/com/now/naaga/di/ServiceModule.kt create mode 100644 android/app/src/main/java/com/now/naaga/presentation/common/dialog/DialogType.kt rename android/app/src/main/java/com/now/naaga/presentation/{onadventure => common/dialog}/NaagaAlertDialog.kt (89%) rename android/app/src/main/java/com/now/naaga/presentation/{beginadventure/LocationPermissionDialog.kt => common/dialog/PermissionDialog.kt} (53%) rename android/app/src/main/java/com/now/naaga/presentation/{onadventure => common/dialog}/PolaroidDialog.kt (97%) delete mode 100644 android/app/src/main/java/com/now/naaga/presentation/login/LoginViewModelFactory.kt delete mode 100644 android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageAdapter.kt delete mode 100644 android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageCustomGrid.kt delete mode 100644 android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageItemUiModel.kt delete mode 100644 android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageViewHolder.kt create mode 100644 android/app/src/main/java/com/now/naaga/presentation/mypage/place/MyPageCustomGrid.kt create mode 100644 android/app/src/main/java/com/now/naaga/presentation/mypage/place/MyPagePlaceAdapter.kt create mode 100644 android/app/src/main/java/com/now/naaga/presentation/mypage/place/MyPagePlaceViewHolder.kt create mode 100644 android/app/src/main/java/com/now/naaga/presentation/mypage/statistics/MyPageStatisticsAdapter.kt create mode 100644 android/app/src/main/java/com/now/naaga/presentation/mypage/statistics/MyPageStatisticsViewHolder.kt create mode 100644 android/app/src/main/java/com/now/naaga/presentation/setting/SettingActivity.kt create mode 100644 android/app/src/main/java/com/now/naaga/presentation/setting/SettingViewModel.kt create mode 100644 android/app/src/main/java/com/now/naaga/presentation/uimodel/model/MyPagePlaceUiModel.kt create mode 100644 android/app/src/main/java/com/now/naaga/presentation/uimodel/model/StatisticsUiModel.kt delete mode 100644 android/app/src/main/java/com/now/naaga/presentation/upload/CameraPermissionDialog.kt delete mode 100644 android/app/src/main/java/com/now/naaga/presentation/upload/UploadFactory.kt create mode 100644 android/app/src/main/java/com/now/naaga/presentation/upload/UploadStatus.kt create mode 100644 android/app/src/main/java/com/now/naaga/util/Event.kt create mode 100644 android/app/src/main/java/com/now/naaga/util/MutableSingleLiveData.kt create mode 100644 android/app/src/main/java/com/now/naaga/util/ResponseUtil.kt create mode 100644 android/app/src/main/java/com/now/naaga/util/SingleLiveData.kt rename android/app/src/main/java/com/now/naaga/util/{ => extension}/IntentExt.kt (88%) create mode 100644 android/app/src/main/java/com/now/naaga/util/extension/PackageManagerExt.kt create mode 100644 android/app/src/main/res/drawable/bg_blue_button.xml create mode 100644 android/app/src/main/res/drawable/bg_blue_gradient.xml create mode 100644 android/app/src/main/res/drawable/bg_yellow_button.xml create mode 100644 android/app/src/main/res/drawable/bg_yellow_button_thick.xml create mode 100644 android/app/src/main/res/drawable/ic_all_adventure.xml create mode 100644 android/app/src/main/res/drawable/ic_building.xml create mode 100644 android/app/src/main/res/drawable/ic_building_full.xml create mode 100644 android/app/src/main/res/drawable/ic_compass.xml delete mode 100644 android/app/src/main/res/drawable/ic_drop.xml create mode 100644 android/app/src/main/res/drawable/ic_fail_adventure.xml rename android/app/src/main/res/drawable/{ic_fail.xml => ic_fail_label.xml} (100%) create mode 100644 android/app/src/main/res/drawable/ic_flag.xml delete mode 100644 android/app/src/main/res/drawable/ic_hint.xml create mode 100644 android/app/src/main/res/drawable/ic_launcher_foreground.xml delete mode 100644 android/app/src/main/res/drawable/ic_logo_purple.xml create mode 100644 android/app/src/main/res/drawable/ic_message_received.xml create mode 100644 android/app/src/main/res/drawable/ic_message_send.xml delete mode 100644 android/app/src/main/res/drawable/ic_mypage.xml create mode 100644 android/app/src/main/res/drawable/ic_naaga_logo.xml create mode 100644 android/app/src/main/res/drawable/ic_setting.xml create mode 100644 android/app/src/main/res/drawable/ic_star.xml create mode 100644 android/app/src/main/res/drawable/ic_stop.xml delete mode 100644 android/app/src/main/res/drawable/ic_success.xml create mode 100644 android/app/src/main/res/drawable/ic_success_adventure.xml create mode 100644 android/app/src/main/res/drawable/ic_success_label.xml delete mode 100644 android/app/src/main/res/drawable/ic_upload.xml create mode 100644 android/app/src/main/res/drawable/naaga_icon_background.xml create mode 100644 android/app/src/main/res/drawable/naaga_icon_foreground.xml create mode 100644 android/app/src/main/res/drawable/oval_blue_gradient.xml create mode 100644 android/app/src/main/res/drawable/oval_orange_gradient.xml create mode 100644 android/app/src/main/res/drawable/oval_yellow_gradient.xml delete mode 100644 android/app/src/main/res/drawable/rect_main_gradient.xml delete mode 100644 android/app/src/main/res/drawable/rect_radius_small_white.xml create mode 100644 android/app/src/main/res/font/main_font.otf create mode 100644 android/app/src/main/res/layout/activity_setting.xml delete mode 100644 android/app/src/main/res/layout/dialog_location_permission.xml rename android/app/src/main/res/layout/{dialog_camera_permission.xml => dialog_permission.xml} (72%) create mode 100644 android/app/src/main/res/layout/rv_mypage_item_adventure.xml delete mode 100644 android/app/src/main/res/layout/rv_mypage_item_statistics.xml delete mode 100644 android/app/src/main/res/layout/skeleton_begin_adventure.xml delete mode 100644 android/app/src/main/res/mipmap-hdpi/naaga_icon.png create mode 100644 android/app/src/main/res/mipmap-hdpi/naaga_icon.webp delete mode 100644 android/app/src/main/res/mipmap-hdpi/naaga_icon_foreground.png delete mode 100644 android/app/src/main/res/mipmap-hdpi/naaga_icon_round.png create mode 100644 android/app/src/main/res/mipmap-hdpi/naaga_icon_round.webp delete mode 100644 android/app/src/main/res/mipmap-mdpi/naaga_icon.png create mode 100644 android/app/src/main/res/mipmap-mdpi/naaga_icon.webp delete mode 100644 android/app/src/main/res/mipmap-mdpi/naaga_icon_foreground.png delete mode 100644 android/app/src/main/res/mipmap-mdpi/naaga_icon_round.png create mode 100644 android/app/src/main/res/mipmap-mdpi/naaga_icon_round.webp delete mode 100644 android/app/src/main/res/mipmap-xhdpi/naaga_icon.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/naaga_icon.webp delete mode 100644 android/app/src/main/res/mipmap-xhdpi/naaga_icon_foreground.png delete mode 100644 android/app/src/main/res/mipmap-xhdpi/naaga_icon_round.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/naaga_icon_round.webp delete mode 100644 android/app/src/main/res/mipmap-xxhdpi/naaga_icon.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/naaga_icon.webp delete mode 100644 android/app/src/main/res/mipmap-xxhdpi/naaga_icon_foreground.png delete mode 100644 android/app/src/main/res/mipmap-xxhdpi/naaga_icon_round.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/naaga_icon_round.webp delete mode 100644 android/app/src/main/res/mipmap-xxxhdpi/naaga_icon.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/naaga_icon.webp delete mode 100644 android/app/src/main/res/mipmap-xxxhdpi/naaga_icon_foreground.png delete mode 100644 android/app/src/main/res/mipmap-xxxhdpi/naaga_icon_round.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/naaga_icon_round.webp create mode 100644 android/app/src/test/java/com/now/naaga/AdventureHistoryViewModelTest.kt create mode 100644 android/app/src/test/java/com/now/naaga/AdventureResultViewModelTest.kt delete mode 100644 android/app/src/test/java/com/now/naaga/ExampleUnitTest.kt create mode 100644 android/app/src/test/java/com/now/naaga/HiltTestRunner.kt create mode 100644 android/app/src/test/java/com/now/naaga/RankViewModelTest.kt create mode 100644 android/app/src/test/java/com/now/naaga/UploadViewModelTest.kt create mode 100644 android/app/src/test/java/com/now/naaga/UploadViewModelTestWithRobolectric.kt create mode 100644 android/app/src/test/java/com/now/naaga/getOrAwaitValue.kt create mode 100644 android/naaga create mode 100644 backend/src/main/java/com/now/naaga/auth/presentation/interceptor/ManagerAuthInterceptor.java create mode 100644 backend/src/main/java/com/now/naaga/common/config/FilterConfig.java create mode 100644 backend/src/main/java/com/now/naaga/common/config/HibernateConfig.java create mode 100644 backend/src/main/java/com/now/naaga/common/presentation/LogFilter.java create mode 100644 backend/src/main/java/com/now/naaga/common/presentation/MdcToken.java create mode 100644 backend/src/main/java/com/now/naaga/common/presentation/QueryCounter.java create mode 100644 backend/src/main/java/com/now/naaga/common/presentation/QueryInspector.java create mode 100644 backend/src/main/java/com/now/naaga/common/presentation/interceptor/RequestMatcher.java create mode 100644 backend/src/main/java/com/now/naaga/common/presentation/interceptor/RequestMatcherInterceptor.java create mode 100644 backend/src/main/java/com/now/naaga/common/presentation/interceptor/RequestPattern.java create mode 100644 backend/src/main/java/com/now/naaga/game/application/GameFinishService.java create mode 100644 backend/src/main/java/com/now/naaga/game/application/dto/CreateGameResultCommand.java delete mode 100644 backend/src/main/java/com/now/naaga/game/domain/ResultType.java delete mode 100644 backend/src/main/java/com/now/naaga/game/exception/GameNotArrivalException.java create mode 100644 backend/src/main/java/com/now/naaga/game/exception/GameNotFinishedException.java delete mode 100644 backend/src/main/java/com/now/naaga/game/repository/GameResultRepository.java create mode 100644 backend/src/main/java/com/now/naaga/gameresult/application/GameResultService.java rename backend/src/main/java/com/now/naaga/{game => gameresult}/domain/GameResult.java (82%) create mode 100644 backend/src/main/java/com/now/naaga/gameresult/domain/ResultType.java rename backend/src/main/java/com/now/naaga/{game/domain/gamescore/FailGameScorePolicy.java => gameresult/domain/gamescore/FailResultScorePolicy.java} (57%) rename backend/src/main/java/com/now/naaga/{game/domain/gamescore/GameScoreCalculator.java => gameresult/domain/gamescore/ResultScoreCalculator.java} (60%) rename backend/src/main/java/com/now/naaga/{game/domain/gamescore/GameScorePolicy.java => gameresult/domain/gamescore/ResultScorePolicy.java} (57%) rename backend/src/main/java/com/now/naaga/{game/domain/gamescore/SuccessGameScorePolicy.java => gameresult/domain/gamescore/SuccessResultScorePolicy.java} (91%) create mode 100644 backend/src/main/java/com/now/naaga/gameresult/exception/GameResultException.java create mode 100644 backend/src/main/java/com/now/naaga/gameresult/exception/GameResultExceptionType.java create mode 100644 backend/src/main/java/com/now/naaga/gameresult/repository/GameResultRepository.java create mode 100644 backend/src/main/java/com/now/naaga/like/domain/PlaceLike.java create mode 100644 backend/src/main/java/com/now/naaga/like/domain/PlaceLikeType.java create mode 100644 backend/src/main/java/com/now/naaga/like/repository/PlaceLikeRepository.java rename backend/src/main/java/com/now/naaga/member/application/{ => dto}/CreateMemberCommand.java (53%) rename backend/src/main/java/com/now/naaga/member/application/{ => dto}/DeleteMemberCommand.java (54%) create mode 100644 backend/src/main/java/com/now/naaga/placestatistics/PlaceStatistics.java create mode 100644 backend/src/main/java/com/now/naaga/placestatistics/repository/PlaceStatisticsRepository.java create mode 100644 backend/src/main/java/com/now/naaga/player/application/dto/AddScoreCommand.java create mode 100644 backend/src/main/java/com/now/naaga/temporaryplace/application/TemporaryPlaceService.java create mode 100644 backend/src/main/java/com/now/naaga/temporaryplace/application/dto/CreateTemporaryPlaceCommand.java create mode 100644 backend/src/main/java/com/now/naaga/temporaryplace/domain/TemporaryPlace.java create mode 100644 backend/src/main/java/com/now/naaga/temporaryplace/presentation/TemporaryPlaceController.java create mode 100644 backend/src/main/java/com/now/naaga/temporaryplace/presentation/dto/CreateTemporaryPlaceRequest.java create mode 100644 backend/src/main/java/com/now/naaga/temporaryplace/presentation/dto/TemporaryPlaceResponse.java create mode 100644 backend/src/main/java/com/now/naaga/temporaryplace/repository/TemporaryPlaceRepository.java delete mode 100644 backend/src/main/resources/console-appender.xml delete mode 100644 backend/src/main/resources/db-file-appender.xml create mode 100644 backend/src/main/resources/error-appender.xml create mode 100644 backend/src/main/resources/error-console.xml delete mode 100644 backend/src/main/resources/error-file-appender.xml create mode 100644 backend/src/main/resources/info-appender.xml create mode 100644 backend/src/main/resources/info-console.xml delete mode 100644 backend/src/main/resources/info-file-appender.xml delete mode 100644 backend/src/main/resources/logback-spring.xml create mode 100644 backend/src/main/resources/logback.xml create mode 100644 backend/src/main/resources/warn-appender.xml create mode 100644 backend/src/main/resources/warn-console.xml delete mode 100644 backend/src/main/resources/warn-file-appender.xml create mode 100644 backend/src/test/java/com/now/naaga/auth/presentation/interceptor/ManagerAuthInterceptorTest.java create mode 100644 backend/src/test/java/com/now/naaga/common/builder/PlaceLikeBuilder.java create mode 100644 backend/src/test/java/com/now/naaga/common/builder/PlaceStatisticsBuilder.java create mode 100644 backend/src/test/java/com/now/naaga/common/builder/TemporaryPlaceBuilder.java create mode 100644 backend/src/test/java/com/now/naaga/common/fixture/PlaceLikeFixture.java create mode 100644 backend/src/test/java/com/now/naaga/common/fixture/PlaceStatisticsFixture.java create mode 100644 backend/src/test/java/com/now/naaga/common/fixture/TemporaryPlaceFixture.java create mode 100644 backend/src/test/java/com/now/naaga/common/presentation/interceptor/RequestMatcherInterceptorTest.java create mode 100644 backend/src/test/java/com/now/naaga/common/presentation/interceptor/RequestPatternTest.java rename backend/src/test/java/com/now/naaga/game/domain/{GameScorePolicyTest.java => ResultScorePolicyTest.java} (95%) rename backend/src/test/java/com/now/naaga/game/domain/gamescore/{GameScoreCalculatorTest.java => ResultScoreCalculatorTest.java} (78%) create mode 100644 backend/src/test/java/com/now/naaga/gameresult/application/GameResultServiceTest.java create mode 100644 backend/src/test/java/com/now/naaga/gameresult/repository/GameResultRepositoryTest.java create mode 100644 backend/src/test/java/com/now/naaga/place/application/PlaceServiceTest.java create mode 100644 backend/src/test/java/com/now/naaga/place/service/PlaceServiceTest.java create mode 100644 backend/src/test/java/com/now/naaga/temporaryplace/application/TemporaryPlaceServiceTest.java rename "backend/src/test/java/com/now/naaga/place/fixture/\353\243\250\355\204\260\355\232\214\352\264\200.png" => "backend/src/test/java/com/now/naaga/temporaryplace/fixture/\353\243\250\355\204\260\355\232\214\352\264\200.png" (100%) create mode 100644 backend/src/test/java/com/now/naaga/temporaryplace/presentation/TemporaryPlaceControllerTest.java diff --git a/.github/workflows/android_ci.yml b/.github/workflows/android_ci.yml index 3a6961504..8d9401e41 100644 --- a/.github/workflows/android_ci.yml +++ b/.github/workflows/android_ci.yml @@ -2,7 +2,7 @@ name: NAAGA ANDROID CI on: pull_request: - branches: [ dev ] + branches: [ dev_android ] paths: - 'android/**' diff --git a/.github/workflows/backend_dev_merge_workflow.yml b/.github/workflows/backend_dev_merge_workflow.yml index 11aaf056d..867e515ac 100644 --- a/.github/workflows/backend_dev_merge_workflow.yml +++ b/.github/workflows/backend_dev_merge_workflow.yml @@ -2,7 +2,8 @@ name: NAAGA BACKEND MERGE CI on: push: branches: - - dev + - dev_backend + jobs: deploy: runs-on: naaga diff --git a/.github/workflows/backend_dev_pr_workflow.yml b/.github/workflows/backend_dev_pr_workflow.yml index cd38b349c..36ba39d66 100644 --- a/.github/workflows/backend_dev_pr_workflow.yml +++ b/.github/workflows/backend_dev_pr_workflow.yml @@ -3,7 +3,7 @@ name: NAAGA BACKEND PULL REQUEST CI on: pull_request: branches: - - dev + - dev_backend paths: - backend/** @@ -52,3 +52,16 @@ jobs: - name: Test with Gradle run: ./gradlew test + + - name: 테스트 결과를 PR에 코멘트로 등록합니다 + uses: EnricoMi/publish-unit-test-result-action@v1 + if: always() + with: + files: 'backend/build/test-results/test/TEST-*.xml' + + - name: 테스트 실패 시, 실패한 코드 라인에 Check 코멘트를 등록합니다 + uses: mikepenz/action-junit-report@v3 + if: always() + with: + report_paths: '**/build/test-results/test/TEST-*.xml' + token: ${{ github.token }} diff --git a/.github/workflows/backend_prod_merge_workflow.yml b/.github/workflows/backend_prod_merge_workflow.yml index 69cb6861a..9615d5c08 100644 --- a/.github/workflows/backend_prod_merge_workflow.yml +++ b/.github/workflows/backend_prod_merge_workflow.yml @@ -4,7 +4,9 @@ on: push: branches: - main - + paths: + - backend/** + jobs: deploy: runs-on: naaga @@ -38,3 +40,22 @@ jobs: cd /home/ubuntu/prod chmod +x ./deploy_prod.sh sudo ./deploy_prod.sh + + sync-dev_backend: + needs: deploy + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: main + + - name: merge main -> dev_backend + uses: devmasx/merge-branch@master + with: + type: now + from_branch: main + target_branch: dev_backend + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/backend_rel_merge_workflow.yml b/.github/workflows/backend_rel_merge_workflow.yml new file mode 100644 index 000000000..3ac3a3e3b --- /dev/null +++ b/.github/workflows/backend_rel_merge_workflow.yml @@ -0,0 +1,60 @@ +name: NAAGA BACKEND RELEASE SERVER MERGE CI/CD + +on: + push: + branches: + - release/** + paths: + - backend/** + +jobs: + deploy: + runs-on: naaga + steps: + - name: change permission + run: | + sudo chown -R ubuntu:ubuntu /home/ubuntu/actions-runner/naaga/2023-naaga/2023-naaga + + - name: checkout + uses: actions/checkout@v3 + with: + submodules: true + ssh-key: ${{ secrets.SSH_PRIVATE_KEY }} + + - name: project remove + run: | + sudo rm -rf /home/ubuntu/prod/2023-naaga + + - name: project copy + run: | + sudo cp -r /home/ubuntu/actions-runner/naaga/2023-naaga/2023-naaga /home/ubuntu/prod + + - name: build + run: | + cd /home/ubuntu/prod/2023-naaga/backend + sudo chmod +x ./gradlew + sudo ./gradlew clean bootJar + + - name: transfer & run + run: | + cd /home/ubuntu/prod + chmod +x ./deploy_prod.sh + sudo ./deploy_prod.sh + + sync-dev_backend: + needs: deploy + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: main + + - name: merge release -> dev_backend + uses: devmasx/merge-branch@master + with: + type: now + target_branch: dev_backend + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..0a5d4cc38 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.idea \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle index cd7f67f95..bbe975504 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -5,6 +5,8 @@ plugins { id 'kotlin-parcelize' id 'com.google.gms.google-services' id 'com.google.firebase.crashlytics' + id 'kotlin-kapt' + id 'com.google.dagger.hilt.android' } Properties properties = new Properties() @@ -18,10 +20,11 @@ android { applicationId "com.now.naaga" minSdk 28 targetSdk 33 - versionCode 4 - versionName "1.0.1" + versionCode 5 + versionName "1.1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "com.now.naaga.HiltTestRunner" buildConfigField "String", "BASE_URL", properties["BASE_URL"] buildConfigField "String", "KAKAO_NATIVE_APP_KEY", properties["KAKAO_NATIVE_APP_KEY"] resValue "string", "kakao_redirection_scheme", properties["kakao_redirection_scheme"] @@ -31,6 +34,8 @@ android { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + + ndk.debugSymbolLevel 'FULL' } } compileOptions { @@ -43,15 +48,20 @@ android { dataBinding { enable = true } + testOptions { + unitTests { + includeAndroidResources = true + } + } } dependencies { - implementation 'androidx.core:core-ktx:1.7.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.9.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation project(path: ':domain') + implementation 'androidx.test:runner:1.5.2' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' @@ -88,6 +98,7 @@ dependencies { // coroutines implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.4.2") + testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3") // splash implementation "androidx.core:core-splashscreen:1.0.0" @@ -96,6 +107,7 @@ dependencies { implementation(platform('com.google.firebase:firebase-bom:32.2.0')) implementation "com.google.firebase:firebase-analytics-ktx" implementation("com.google.firebase:firebase-crashlytics-ktx") + implementation("com.google.firebase:firebase-config-ktx") // kakao Login implementation "com.kakao.sdk:v2-user:2.15.0" @@ -105,4 +117,26 @@ dependencies { // lottie implementation "com.airbnb.android:lottie:6.1.0" + + // ViewModel Test + testImplementation("androidx.arch.core:core-testing:2.2.0") + + // Robolectric + testImplementation("org.robolectric:robolectric:4.9") + + // hilt + implementation "com.google.dagger:hilt-android:2.44" + kapt "com.google.dagger:hilt-compiler:2.44" + + implementation "androidx.activity:activity-ktx:1.7.2" + + // For Robolectric tests. + testImplementation 'com.google.dagger:hilt-android-testing:2.44' + // ...with Kotlin. + kaptTest 'com.google.dagger:hilt-android-compiler:2.44' +} + +// Allow references to generated code +kapt { + correctErrorTypes true } diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 513434637..f8a7b38c7 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -30,8 +30,12 @@ + android:screenOrientation="portrait"> + + + + + - - - - - - + android:exported="false" /> + diff --git a/android/app/src/main/ic_launcher-playstore.png b/android/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..27f05326961952a3b5d2d11ecdc5eb33592eb27c GIT binary patch literal 47163 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

l6TpH0H+CDZq*B{l>}7Naf{Xce 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/java/com/now/naaga/NaagaApplication.kt b/android/app/src/main/java/com/now/naaga/NaagaApplication.kt index 31015517a..e68c27296 100644 --- a/android/app/src/main/java/com/now/naaga/NaagaApplication.kt +++ b/android/app/src/main/java/com/now/naaga/NaagaApplication.kt @@ -5,7 +5,9 @@ import androidx.appcompat.app.AppCompatDelegate import com.kakao.sdk.common.KakaoSdk import com.now.naaga.data.local.AuthDataSource import com.now.naaga.data.local.DefaultAuthDataSource +import dagger.hilt.android.HiltAndroidApp +@HiltAndroidApp class NaagaApplication : Application() { override fun onCreate() { diff --git a/android/app/src/main/java/com/now/naaga/data/firebase/analytics/ButtonNames.kt b/android/app/src/main/java/com/now/naaga/data/firebase/analytics/ButtonNames.kt index e3a115fce..34b5d465f 100644 --- a/android/app/src/main/java/com/now/naaga/data/firebase/analytics/ButtonNames.kt +++ b/android/app/src/main/java/com/now/naaga/data/firebase/analytics/ButtonNames.kt @@ -2,7 +2,7 @@ package com.now.naaga.data.firebase.analytics // BeginAdventureActivity const val BEGIN_BEGIN_ADVENTURE = "BEGIN_ADVENTURE" -const val BEGIN_GO_RANK = "GO_RANK" +const val BEGIN_GO_SETTING = "GO_SETTING" const val BEGIN_GO_UPLOAD = "GO_UPLOAD" const val BEGIN_GO_MYPAGE = "GO_MYPAGE" diff --git a/android/app/src/main/java/com/now/naaga/data/firebase/analytics/ServerErrorNames.kt b/android/app/src/main/java/com/now/naaga/data/firebase/analytics/ServerErrorNames.kt index 9fd47360a..ea7e7acac 100644 --- a/android/app/src/main/java/com/now/naaga/data/firebase/analytics/ServerErrorNames.kt +++ b/android/app/src/main/java/com/now/naaga/data/firebase/analytics/ServerErrorNames.kt @@ -6,3 +6,4 @@ const val ADVENTURE_RESULT = "ADVENTURE_RESULT" const val LOGIN_AUTH = "LOGIN" const val MY_PAGE_STATISTICS = "MY_PAGE" const val RANK_RANK = "RANK" +const val SPLASH_MY_PAGE_STATISTICS = "SPLASH_BUT_MY_PAGE_API" diff --git a/android/app/src/main/java/com/now/naaga/data/local/AuthDataSource.kt b/android/app/src/main/java/com/now/naaga/data/local/AuthDataSource.kt index e0a07683e..0616b9227 100644 --- a/android/app/src/main/java/com/now/naaga/data/local/AuthDataSource.kt +++ b/android/app/src/main/java/com/now/naaga/data/local/AuthDataSource.kt @@ -5,4 +5,5 @@ interface AuthDataSource { fun setAccessToken(newToken: String) fun getRefreshToken(): String? fun setRefreshToken(newToken: String) + fun resetToken() } diff --git a/android/app/src/main/java/com/now/naaga/data/local/DefaultAuthDataSource.kt b/android/app/src/main/java/com/now/naaga/data/local/DefaultAuthDataSource.kt index 9b9757482..f7a2ef711 100644 --- a/android/app/src/main/java/com/now/naaga/data/local/DefaultAuthDataSource.kt +++ b/android/app/src/main/java/com/now/naaga/data/local/DefaultAuthDataSource.kt @@ -19,7 +19,8 @@ class DefaultAuthDataSource(context: Context) : AuthDataSource { ) override fun getAccessToken(): String? { - return authPreference.getString(ACCESS_TOKEN, null) + val accessToken = authPreference.getString(ACCESS_TOKEN, null) ?: return null + return BEARER + accessToken } override fun setAccessToken(newToken: String) { @@ -27,16 +28,24 @@ class DefaultAuthDataSource(context: Context) : AuthDataSource { } override fun getRefreshToken(): String? { - return authPreference.getString(REFRESH_TOKEN, null) + val refreshToken = authPreference.getString(REFRESH_TOKEN, null) ?: return null + return BEARER + refreshToken } override fun setRefreshToken(newToken: String) { authPreference.edit().putString(REFRESH_TOKEN, newToken).apply() } + override fun resetToken() { + authPreference.edit().putString(ACCESS_TOKEN, DEFAULT_TOKEN).apply() + authPreference.edit().putString(REFRESH_TOKEN, DEFAULT_TOKEN).apply() + } + companion object { + private const val DEFAULT_TOKEN = "" private const val AUTH_ENCRYPTED_PREFERENCE = "AUTH_ENCRYPTED_PREFERENCE" private const val ACCESS_TOKEN = "ACCESS_TOKEN" private const val REFRESH_TOKEN = "REFRESH_TOKEN" + private const val BEARER = "Bearer " } } diff --git a/android/app/src/main/java/com/now/naaga/data/mapper/PlaceMapper.kt b/android/app/src/main/java/com/now/naaga/data/mapper/PlaceMapper.kt index 7f10ab138..c254fa327 100644 --- a/android/app/src/main/java/com/now/naaga/data/mapper/PlaceMapper.kt +++ b/android/app/src/main/java/com/now/naaga/data/mapper/PlaceMapper.kt @@ -2,6 +2,7 @@ package com.now.naaga.data.mapper import com.now.domain.model.Place import com.now.naaga.data.remote.dto.PlaceDto +import com.now.naaga.data.remote.dto.PostPlaceDto fun Place.toDto(): PlaceDto { return PlaceDto( @@ -22,3 +23,13 @@ fun PlaceDto.toDomain(): Place { description = description, ) } + +fun PostPlaceDto.toDomain(): Place { + return Place( + id = id, + name = name, + coordinate = coordinate.toDomain(), + image = imageUrl, + description = description, + ) +} diff --git a/android/app/src/main/java/com/now/naaga/data/remote/dto/PostPlaceDto.kt b/android/app/src/main/java/com/now/naaga/data/remote/dto/PostPlaceDto.kt new file mode 100644 index 000000000..149455438 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/data/remote/dto/PostPlaceDto.kt @@ -0,0 +1,20 @@ +package com.now.naaga.data.remote.dto + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class PostPlaceDto( + @SerialName("id") + val id: Long, + @SerialName("name") + val name: String, + @SerialName("coordinate") + val coordinate: CoordinateDto, + @SerialName("imageUrl") + val imageUrl: String, + @SerialName("description") + val description: String, + @SerialName("registeredPlayerId") + val registeredPlayerId: Long, +) diff --git a/android/app/src/main/java/com/now/naaga/data/remote/dto/RefreshTokenDto.kt b/android/app/src/main/java/com/now/naaga/data/remote/dto/RefreshTokenDto.kt new file mode 100644 index 000000000..6c6ed2410 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/data/remote/dto/RefreshTokenDto.kt @@ -0,0 +1,10 @@ +package com.now.naaga.data.remote.dto + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class RefreshTokenDto( + @SerialName("refreshToken") + val refreshToken: String, +) diff --git a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/AuthInterceptor.kt b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/AuthInterceptor.kt index 6848c6653..bfe90be5a 100644 --- a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/AuthInterceptor.kt +++ b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/AuthInterceptor.kt @@ -6,6 +6,7 @@ import com.now.naaga.BuildConfig import com.now.naaga.NaagaApplication import com.now.naaga.data.remote.dto.FailureDto import com.now.naaga.data.remote.dto.NaagaAuthDto +import com.now.naaga.data.throwable.DataThrowable import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withContext @@ -13,6 +14,7 @@ import okhttp3.Interceptor import okhttp3.MediaType.Companion.toMediaType import okhttp3.OkHttpClient import okhttp3.Request +import okhttp3.RequestBody import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.Response import org.json.JSONObject @@ -22,72 +24,64 @@ class AuthInterceptor : Interceptor { private val client = OkHttpClient.Builder().build() override fun intercept(chain: Interceptor.Chain): Response { - if (isLoginRequest(chain.request())) { - return chain.proceed(chain.request()) - } + val accessToken = getAccessToken() ?: return chain.proceed(chain.request()) - val headerAddedRequest = chain.request().newBuilder().addHeader(AUTH_KEY, getAccessToken()).build() - val response = chain.proceed(headerAddedRequest) + val headerAddedRequest = chain.request().newBuilder().addHeader(AUTH_KEY, accessToken).build() + val response: Response = chain.proceed(headerAddedRequest) if (response.code == 401) { - val failureDto = response.getDto() - when (failureDto.code) { - 101 -> throw IllegalStateException(AUTH_ERROR.format(headerAddedRequest.url.toString())) - 102 -> { - response.close() - return reRequest(chain) - } - - 103 -> throw IllegalStateException(REFRESH_EXPIRED) - } + val newAccessToken = getRefreshedToken(accessToken).getOrElse { return response } + return chain.proceed(chain.request().newBuilder().addHeader(AUTH_KEY, newAccessToken).build()) } return response } - private fun isLoginRequest(request: Request): Boolean { - val path: String = request.url.encodedPath.substringAfter(BuildConfig.BASE_URL) - return path == AUTH_PATH - } + private fun getRefreshedToken(accessToken: String): Result { + val requestBody = createRefreshRequestBody() + val request = createRefreshRequest(requestBody, accessToken) - private fun reRequest(chain: Interceptor.Chain): Response { - val token: String = getRefreshedToken() - val request = chain.request().newBuilder().addHeader(AUTH_KEY, token).build() - return chain.proceed(request) + val auth: NaagaAuthDto = requestRefresh(request).getOrElse { + return Result.failure(it) + } + storeToken(auth.accessToken, auth.refreshToken) + return Result.success(auth.accessToken) } - private fun getRefreshedToken(): String { - val body = JSONObject() + private fun createRefreshRequestBody(): RequestBody { + return JSONObject() .put(AUTH_REFRESH_KEY, getRefreshToken()) .toString() .toRequestBody(contentType = "application/json".toMediaType()) + } - val request = Request.Builder() + private fun createRefreshRequest(requestBody: RequestBody, accessToken: String): Request { + return Request.Builder() .url(BuildConfig.BASE_URL + AUTH_REFRESH_PATH) - .post(body) - .addHeader(AUTH_KEY, getAccessToken()) + .post(requestBody) + .addHeader(AUTH_KEY, accessToken) .build() - - val auth = requestRefresh(request) - storeToken(auth.accessToken, auth.refreshToken) - return auth.accessToken } - private fun requestRefresh(request: Request): NaagaAuthDto { + private fun requestRefresh(request: Request): Result { val response: Response = runBlocking { withContext(Dispatchers.IO) { client.newCall(request).execute() } } if (response.isSuccessful) { - return response.getDto() + return Result.success(response.getDto()) + } + val failedResponse = response.getDto() + if (failedResponse.code == 101) { + return Result.failure(DataThrowable.AuthorizationThrowable(failedResponse.code, failedResponse.message)) } - throw IllegalStateException(REFRESH_FAILURE) + return Result.failure(IllegalStateException(REFRESH_FAILURE)) } - private fun getAccessToken(): String { - return NaagaApplication.authDataSource.getAccessToken() ?: throw IllegalStateException(NO_ACCESS_TOKEN) + private fun getAccessToken(): String? { + return NaagaApplication.authDataSource.getAccessToken() } private fun getRefreshToken(): String { - return NaagaApplication.authDataSource.getRefreshToken() ?: throw IllegalStateException(NO_REFRESH_TOKEN) + return requireNotNull(NaagaApplication.authDataSource.getRefreshToken()) { NO_REFRESH_TOKEN } } private fun storeToken(accessToken: String, refreshToken: String) { @@ -107,9 +101,6 @@ class AuthInterceptor : Interceptor { const val AUTH_PATH = "auth" const val AUTH_REFRESH_PATH = "auth/refresh" - const val AUTH_ERROR = "%s에서 인증 오류 발생" - const val REFRESH_EXPIRED = "리프레시 토큰 만료" - const val NO_ACCESS_TOKEN = "엑세스 토큰이 없습니다" const val NO_REFRESH_TOKEN = "리프레시 토큰이 없습니다" const val REFRESH_FAILURE = "토큰 리프레시 실패" } diff --git a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/RetrofitFactory.kt b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/RetrofitFactory.kt index 2aef2ac2a..c798eeef8 100644 --- a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/RetrofitFactory.kt +++ b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/RetrofitFactory.kt @@ -2,11 +2,10 @@ package com.now.naaga.data.remote.retrofit import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory import com.now.naaga.BuildConfig -import com.now.naaga.NaagaApplication import kotlinx.serialization.json.Json -import okhttp3.Interceptor import okhttp3.MediaType.Companion.toMediaType import okhttp3.OkHttpClient +import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit object RetrofitFactory { @@ -18,20 +17,10 @@ object RetrofitFactory { .client(createOkHttpClient()) .build() - private fun createInterceptor(): Interceptor = Interceptor { chain -> - val token: String = NaagaApplication.authDataSource.getAccessToken() ?: "" - with(chain) { - val newRequest = request().newBuilder() - .addHeader("Authorization", "Bearer $token") - .addHeader("Content-Type", "application/json") - .build() - proceed(newRequest) - } - } - private fun createOkHttpClient(): OkHttpClient { return OkHttpClient.Builder().apply { - addInterceptor(createInterceptor()) + addInterceptor(AuthInterceptor()) + addInterceptor(HttpLoggingInterceptor().apply { level = HttpLoggingInterceptor.Level.BASIC }) }.build() } } diff --git a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/RetrofitUtil.kt b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/RetrofitUtil.kt deleted file mode 100644 index e40c26f76..000000000 --- a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/RetrofitUtil.kt +++ /dev/null @@ -1,59 +0,0 @@ -package com.now.naaga.data.remote.retrofit - -import com.now.naaga.data.throwable.DataThrowable.AuthorizationThrowable -import com.now.naaga.data.throwable.DataThrowable.GameThrowable -import com.now.naaga.data.throwable.DataThrowable.IllegalStateThrowable -import com.now.naaga.data.throwable.DataThrowable.PlaceThrowable -import com.now.naaga.data.throwable.DataThrowable.PlayerThrowable -import com.now.naaga.data.throwable.DataThrowable.UniversalThrowable -import org.json.JSONObject -import retrofit2.Call -import retrofit2.Callback -import retrofit2.Response - -fun Response.codeIn400s(): Boolean { - return this.code() in 400..499 -} - -fun Response.codeIn500s(): Boolean { - return this.code() in 500..599 -} - -fun Call.fetchResponse( - onSuccess: (T) -> Unit, - onFailure: (Throwable) -> Unit, -) { - enqueue( - object : Callback { - override fun onResponse(call: Call, response: Response) { - if (response.isSuccessful) { - val body = response.body() ?: return onFailure(IllegalStateThrowable()) - onSuccess(body) - } - - if (response.codeIn500s()) { - return onFailure(IllegalStateThrowable()) - } - - if (response.codeIn400s()) { - val errorResponse = response.errorBody()?.string() - val jsonObject = errorResponse?.let { JSONObject(it) } - val code = jsonObject?.getInt("code") ?: 0 - val message = jsonObject?.getString("message") ?: "" - - when (code) { - in 100..199 -> { onFailure(AuthorizationThrowable(code, message)) } - in 200..299 -> { onFailure(UniversalThrowable(code, message)) } - in 300..399 -> { onFailure(PlayerThrowable(code, message)) } - in 400..499 -> { onFailure(GameThrowable(code, message)) } - in 500..599 -> { onFailure(PlaceThrowable(code, message)) } - } - } - } - - override fun onFailure(call: Call, t: Throwable) { - onFailure(IllegalStateThrowable()) - } - }, - ) -} diff --git a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/ServicePool.kt b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/ServicePool.kt deleted file mode 100644 index 74ca786a3..000000000 --- a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/ServicePool.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.now.naaga.data.remote.retrofit - -import com.now.naaga.data.remote.retrofit.RetrofitFactory.retrofit -import com.now.naaga.data.remote.retrofit.service.AdventureService -import com.now.naaga.data.remote.retrofit.service.AuthService -import com.now.naaga.data.remote.retrofit.service.PlaceService -import com.now.naaga.data.remote.retrofit.service.RankService -import com.now.naaga.data.remote.retrofit.service.StatisticsService - -object ServicePool { - val adventureService = retrofit.create(AdventureService::class.java) - val rankService = retrofit.create(RankService::class.java) - val statisticsService = retrofit.create(StatisticsService::class.java) - val placeService = retrofit.create(PlaceService::class.java) - val authService = retrofit.create(AuthService::class.java) -} diff --git a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/AdventureService.kt b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/AdventureService.kt index 96ac30141..b21316daf 100644 --- a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/AdventureService.kt +++ b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/AdventureService.kt @@ -6,7 +6,7 @@ import com.now.naaga.data.remote.dto.AdventureStatusDto import com.now.naaga.data.remote.dto.CoordinateDto import com.now.naaga.data.remote.dto.FinishGameDto import com.now.naaga.data.remote.dto.HintDto -import retrofit2.Call +import retrofit2.Response import retrofit2.http.Body import retrofit2.http.GET import retrofit2.http.PATCH @@ -16,49 +16,49 @@ import retrofit2.http.Query interface AdventureService { @GET("/games") - fun getMyGames(): Call> + suspend fun getMyGames(): Response> @GET("/games/{gameId}") - fun getGame( + suspend fun getGame( @Path("gameId") gameId: Long, - ): Call + ): Response @GET("/games") - fun getGamesByStatus( + suspend fun getGamesByStatus( @Query("status") status: String, - ): Call> + ): Response> @POST("/games") - fun beginGame( + suspend fun beginGame( @Body coordinateDto: CoordinateDto, - ): Call + ): Response @PATCH("/games/{gameId}") - fun endGame( + suspend fun endGame( @Path("gameId") gameId: Long, @Body finishGameDto: FinishGameDto, - ): Call + ): Response @GET("/games/{gameId}/result") - fun getGameResult( + suspend fun getGameResult( @Path("gameId") gameId: Long, - ): Call + ): Response @GET("/games/results") - fun getMyGameResults( + suspend fun getMyGameResults( @Query("sort-by") sortBy: String, @Query("order") order: String, - ): Call> + ): Response> @GET("/games/{gameId}/hints/{hintId}") - fun getHint( + suspend fun getHint( @Path("gameId") gameId: Long, @Path("hintId") hingId: Long, - ): Call + ): Response @POST("/games/{gameId}/hints") - fun requestHint( + suspend fun requestHint( @Path("gameId") gameId: Long, @Body coordinateDto: CoordinateDto, - ): Call + ): Response } diff --git a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/AuthService.kt b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/AuthService.kt index 73fdde4e0..7308ce262 100644 --- a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/AuthService.kt +++ b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/AuthService.kt @@ -2,13 +2,20 @@ package com.now.naaga.data.remote.retrofit.service import com.now.naaga.data.remote.dto.NaagaAuthDto import com.now.naaga.data.remote.dto.PlatformAuthDto -import retrofit2.Call +import retrofit2.Response import retrofit2.http.Body +import retrofit2.http.DELETE import retrofit2.http.POST interface AuthService { @POST("/auth") - fun requestAuth( + suspend fun requestAuth( @Body platformAuthDto: PlatformAuthDto, - ): Call + ): Response + + @DELETE("/auth/unlink") + suspend fun withdrawalMember(): Response + + @DELETE("/auth") + suspend fun requestLogout(): Response } diff --git a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/PlaceService.kt b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/PlaceService.kt index 35e395eb1..0fb325c3b 100644 --- a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/PlaceService.kt +++ b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/PlaceService.kt @@ -1,34 +1,34 @@ package com.now.naaga.data.remote.retrofit.service import com.now.naaga.data.remote.dto.PlaceDto +import com.now.naaga.data.remote.dto.PostPlaceDto import okhttp3.MultipartBody import okhttp3.RequestBody -import retrofit2.Call +import retrofit2.Response import retrofit2.http.GET import retrofit2.http.Multipart import retrofit2.http.POST import retrofit2.http.Part +import retrofit2.http.PartMap import retrofit2.http.Path import retrofit2.http.Query interface PlaceService { @GET("/places") - fun getMyPlace( + suspend fun getMyPlace( @Query("sort-by") sort: String, @Query("order") order: String, - ): Call> + ): Response> @GET("/places/{placeId}") - fun getPlace( + suspend fun getPlace( @Path("placeId") placeId: Long, - ): Call + ): Response @Multipart - @POST("/places") - fun registerPlace( - @Part name: RequestBody, - @Part description: RequestBody, - @Part coordinate: RequestBody, + @POST("/temporary-places") + suspend fun registerPlace( + @PartMap postData: HashMap, @Part imageFile: MultipartBody.Part, - ): Call + ): Response } diff --git a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/RankService.kt b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/RankService.kt index bcf36d65b..cf35b3032 100644 --- a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/RankService.kt +++ b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/RankService.kt @@ -1,17 +1,17 @@ package com.now.naaga.data.remote.retrofit.service import com.now.naaga.data.remote.dto.RankDto -import retrofit2.Call +import retrofit2.Response import retrofit2.http.GET import retrofit2.http.Query interface RankService { @GET("/ranks") - fun getAllRanks( + suspend fun getAllRanks( @Query("sort-by") sortBy: String, @Query("order") order: String, - ): Call> + ): Response> @GET("/ranks/my") - fun getMyRank(): Call + suspend fun getMyRank(): Response } diff --git a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/StatisticsService.kt b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/StatisticsService.kt index 5d95028a9..0682a0d62 100644 --- a/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/StatisticsService.kt +++ b/android/app/src/main/java/com/now/naaga/data/remote/retrofit/service/StatisticsService.kt @@ -1,10 +1,10 @@ package com.now.naaga.data.remote.retrofit.service import com.now.naaga.data.remote.dto.StatisticsDto -import retrofit2.Call +import retrofit2.Response import retrofit2.http.GET interface StatisticsService { @GET("/statistics/my") - fun getMyStatistics(): Call + suspend fun getMyStatistics(): Response } diff --git a/android/app/src/main/java/com/now/naaga/data/repository/DefaultAdventureRepository.kt b/android/app/src/main/java/com/now/naaga/data/repository/DefaultAdventureRepository.kt index c4546626a..ff0815e2e 100644 --- a/android/app/src/main/java/com/now/naaga/data/repository/DefaultAdventureRepository.kt +++ b/android/app/src/main/java/com/now/naaga/data/repository/DefaultAdventureRepository.kt @@ -11,127 +11,63 @@ import com.now.domain.model.SortType import com.now.domain.repository.AdventureRepository import com.now.naaga.data.mapper.toDomain import com.now.naaga.data.mapper.toDto -import com.now.naaga.data.remote.dto.AdventureDto import com.now.naaga.data.remote.dto.FinishGameDto -import com.now.naaga.data.remote.retrofit.ServicePool -import com.now.naaga.data.remote.retrofit.fetchResponse +import com.now.naaga.data.remote.retrofit.service.AdventureService +import com.now.naaga.util.getValueOrThrow -class DefaultAdventureRepository : AdventureRepository { - override fun fetchMyAdventures(callback: (Result>) -> Unit) { - val call = ServicePool.adventureService.getMyGames() - call.fetchResponse( - onSuccess = { adventureDtos: List -> - callback(Result.success(adventureDtos.map { it.toDomain() })) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) +class DefaultAdventureRepository( + private val adventureService: AdventureService, +) : AdventureRepository { + override suspend fun fetchMyAdventures(): List { + val response = adventureService.getMyGames().getValueOrThrow() + return response.map { it.toDomain() } } - override fun fetchAdventure(adventureId: Long, callback: (Result) -> Unit) { - val call = ServicePool.adventureService.getGame(adventureId) - call.fetchResponse( - onSuccess = { adventureDto -> - callback(Result.success(adventureDto.toDomain())) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) + override suspend fun fetchAdventure(adventureId: Long): Adventure { + val response = adventureService.getGame(adventureId).getValueOrThrow() + return response.toDomain() } - override fun fetchAdventureByStatus(status: AdventureStatus, callback: (Result>) -> Unit) { - val call = ServicePool.adventureService.getGamesByStatus(status.name) - call.fetchResponse( - onSuccess = { adventureDtos: List -> - callback(Result.success(adventureDtos.map { it.toDomain() })) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) + override suspend fun fetchAdventureByStatus(status: AdventureStatus): List { + val response = adventureService.getGamesByStatus(status.name).getValueOrThrow() + return response.map { it.toDomain() } } - override fun beginAdventure(coordinate: Coordinate, callback: (Result) -> Unit) { - val call = ServicePool.adventureService.beginGame(coordinate.toDto()) - call.fetchResponse( - onSuccess = { adventureDto -> - callback(Result.success(adventureDto.toDomain())) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) + override suspend fun beginAdventure(coordinate: Coordinate): Adventure { + val response = adventureService.beginGame(coordinate.toDto()).getValueOrThrow() + return response.toDomain() } - override fun endGame( + override suspend fun endGame( adventureId: Long, endType: AdventureEndType, coordinate: Coordinate, - callback: (Result) -> Unit, - ) { + ): AdventureStatus { val finishGameDto = FinishGameDto(endType.name, coordinate.toDto()) - val call = ServicePool.adventureService.endGame(adventureId, finishGameDto) - call.fetchResponse( - onSuccess = { adventureStatusDto -> - callback(Result.success(AdventureStatus.getStatus(adventureStatusDto.gameStatus))) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) + val response = adventureService.endGame(adventureId, finishGameDto).getValueOrThrow() + return AdventureStatus.getStatus(response.gameStatus) } - override fun fetchAdventureResult(adventureId: Long, callback: (Result) -> Unit) { - val call = ServicePool.adventureService.getGameResult(adventureId) - call.fetchResponse( - onSuccess = { adventureResultDto -> - callback(Result.success(adventureResultDto.toDomain())) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) + override suspend fun fetchAdventureResult(adventureId: Long): AdventureResult { + val response = adventureService.getGameResult(adventureId).getValueOrThrow() + return response.toDomain() } - override fun fetchMyAdventureResults( + override suspend fun fetchMyAdventureResults( sortBy: SortType, order: OrderType, - callback: (Result>) -> Unit, - ) { - val call = ServicePool.adventureService.getMyGameResults(sortBy.name, order.name) - call.fetchResponse( - onSuccess = { adventureResultDtos -> - callback(Result.success(adventureResultDtos.map { it.toDomain() })) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) + ): List { + val response = adventureService.getMyGameResults(sortBy.name, order.name).getValueOrThrow() + return response.map { it.toDomain() } } - override fun fetchHint(adventureId: Long, hintId: Long, callback: (Result) -> Unit) { - val call = ServicePool.adventureService.getHint(adventureId, hintId) - call.fetchResponse( - onSuccess = { hintDto -> - callback(Result.success(hintDto.toDomain())) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) + override suspend fun fetchHint(adventureId: Long, hintId: Long): Hint { + val response = adventureService.getHint(adventureId, hintId).getValueOrThrow() + return response.toDomain() } - override fun makeHint(adventureId: Long, coordinate: Coordinate, callback: (Result) -> Unit) { - val call = ServicePool.adventureService.requestHint(adventureId, coordinate.toDto()) - call.fetchResponse( - onSuccess = { hintDto -> - callback(Result.success(hintDto.toDomain())) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) + override suspend fun makeHint(adventureId: Long, coordinate: Coordinate): Hint { + val response = adventureService.requestHint(adventureId, coordinate.toDto()).getValueOrThrow() + return response.toDomain() } } diff --git a/android/app/src/main/java/com/now/naaga/data/repository/DefaultAuthRepository.kt b/android/app/src/main/java/com/now/naaga/data/repository/DefaultAuthRepository.kt index 09bf224a5..429643c00 100644 --- a/android/app/src/main/java/com/now/naaga/data/repository/DefaultAuthRepository.kt +++ b/android/app/src/main/java/com/now/naaga/data/repository/DefaultAuthRepository.kt @@ -4,22 +4,42 @@ import com.now.domain.model.PlatformAuth import com.now.domain.repository.AuthRepository import com.now.naaga.data.local.AuthDataSource import com.now.naaga.data.mapper.toDto -import com.now.naaga.data.remote.retrofit.ServicePool -import com.now.naaga.data.remote.retrofit.fetchResponse +import com.now.naaga.data.remote.retrofit.service.AuthService +import com.now.naaga.util.getValueOrThrow +import com.now.naaga.util.unlinkWithKakao +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext -class DefaultAuthRepository(private val authDataSource: AuthDataSource) : AuthRepository { - override fun getToken( - platformAuth: PlatformAuth, - callback: (Result) -> Unit, - ) { - val call = ServicePool.authService.requestAuth(platformAuth.toDto()) - call.fetchResponse( - onSuccess = { naagaAuthDto -> +class DefaultAuthRepository( + private val authDataSource: AuthDataSource, + private val authService: AuthService, + private val dispatcher: CoroutineDispatcher = Dispatchers.IO, +) : AuthRepository { + + override suspend fun getToken(platformAuth: PlatformAuth): Boolean { + return withContext(dispatcher) { + val response = authService.requestAuth(platformAuth.toDto()) + runCatching { + val naagaAuthDto = response.getValueOrThrow() authDataSource.setAccessToken(naagaAuthDto.accessToken) authDataSource.setRefreshToken(naagaAuthDto.refreshToken) - callback(Result.success(true)) - }, - onFailure = { callback(Result.failure(it)) }, - ) + return@withContext true + } + return@withContext false + } + } + + override suspend fun logout() { + withContext(dispatcher) { + val response = authService.requestLogout() + authDataSource.resetToken() + response.getValueOrThrow() + } + } + + override suspend fun withdrawalMember() { + authService.withdrawalMember() + unlinkWithKakao() } } diff --git a/android/app/src/main/java/com/now/naaga/data/repository/DefaultPlaceRepository.kt b/android/app/src/main/java/com/now/naaga/data/repository/DefaultPlaceRepository.kt index 16571c10c..76a77d1b9 100644 --- a/android/app/src/main/java/com/now/naaga/data/repository/DefaultPlaceRepository.kt +++ b/android/app/src/main/java/com/now/naaga/data/repository/DefaultPlaceRepository.kt @@ -4,68 +4,60 @@ import com.now.domain.model.Coordinate import com.now.domain.model.Place import com.now.domain.repository.PlaceRepository import com.now.naaga.data.mapper.toDomain -import com.now.naaga.data.mapper.toDto -import com.now.naaga.data.remote.dto.PlaceDto -import com.now.naaga.data.remote.retrofit.ServicePool.placeService -import com.now.naaga.data.remote.retrofit.fetchResponse -import kotlinx.serialization.encodeToString -import kotlinx.serialization.json.Json +import com.now.naaga.data.remote.retrofit.service.PlaceService +import com.now.naaga.util.getValueOrThrow import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.MultipartBody +import okhttp3.RequestBody import okhttp3.RequestBody.Companion.asRequestBody import okhttp3.RequestBody.Companion.toRequestBody import java.io.File -class DefaultPlaceRepository : PlaceRepository { - override fun fetchMyPlaces( +class DefaultPlaceRepository( + private val placeService: PlaceService, +) : PlaceRepository { + override suspend fun fetchMyPlaces( sortBy: String, order: String, - callback: (Result>) -> Unit, - ) { - val call = placeService.getMyPlace(sortBy, order) - call.fetchResponse( - onSuccess = { placeDtos: List -> - callback(Result.success(placeDtos.map { it.toDomain() })) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) + ): List { + val response = placeService.getMyPlace(sortBy, order) + return response.getValueOrThrow().map { it.toDomain() } } - override fun fetchPlace(placeId: Long, callback: (Result) -> Unit) { - val call = placeService.getPlace(placeId) - call.fetchResponse( - onSuccess = { placeDto -> - callback(Result.success(placeDto.toDomain())) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) + override suspend fun fetchPlace(placeId: Long): Place { + val response = placeService.getPlace(placeId) + return response.getValueOrThrow().toDomain() } - // TODO : 업로드 기능 구현 시 fetchResponse로 변경해야 함 - override fun postPlace( + override suspend fun postPlace( name: String, description: String, coordinate: Coordinate, image: String, - callback: (Result) -> Unit, - ) { + ): Place { val file = File(image) val requestFile = file.asRequestBody("image/jpeg".toMediaTypeOrNull()) val imagePart = MultipartBody.Part.createFormData( - "imageFile", + KEY_IMAGE_FILE, file.name, requestFile, ) - val namePart = name.toRequestBody("text/plain".toMediaTypeOrNull()) - val descriptionPart = description.toRequestBody("text/plain".toMediaTypeOrNull()) - val coordinatePart = - Json.encodeToString(coordinate.toDto()).toRequestBody("application/json".toMediaTypeOrNull()) + val postData = HashMap() + postData[KEY_NAME] = name.toRequestBody("text/plain".toMediaTypeOrNull()) + postData[KEY_DESCRIPTION] = description.toRequestBody("text/plain".toMediaTypeOrNull()) + postData[KEY_LATITUDE] = coordinate.latitude.toString().toRequestBody("text/plain".toMediaTypeOrNull()) + postData[KEY_LONGITUDE] = coordinate.longitude.toString().toRequestBody("text/plain".toMediaTypeOrNull()) + + val response = placeService.registerPlace(postData, imagePart) + return response.getValueOrThrow().toDomain() + } - val call = placeService.registerPlace(namePart, descriptionPart, coordinatePart, imagePart) + companion object { + const val KEY_NAME = "name" + const val KEY_DESCRIPTION = "description" + const val KEY_LATITUDE = "latitude" + const val KEY_LONGITUDE = "longitude" + const val KEY_IMAGE_FILE = "imageFile" } } diff --git a/android/app/src/main/java/com/now/naaga/data/repository/DefaultRankRepository.kt b/android/app/src/main/java/com/now/naaga/data/repository/DefaultRankRepository.kt index 006c6d636..ac447c91b 100644 --- a/android/app/src/main/java/com/now/naaga/data/repository/DefaultRankRepository.kt +++ b/android/app/src/main/java/com/now/naaga/data/repository/DefaultRankRepository.kt @@ -3,36 +3,22 @@ package com.now.naaga.data.repository import com.now.domain.model.Rank import com.now.domain.repository.RankRepository import com.now.naaga.data.mapper.toDomain -import com.now.naaga.data.remote.dto.RankDto -import com.now.naaga.data.remote.retrofit.ServicePool.rankService -import com.now.naaga.data.remote.retrofit.fetchResponse +import com.now.naaga.data.remote.retrofit.service.RankService +import com.now.naaga.util.getValueOrThrow -class DefaultRankRepository : RankRepository { - override fun getAllRanks( +class DefaultRankRepository( + private val rankService: RankService, +) : RankRepository { + override suspend fun getAllRanks( sortBy: String, order: String, - callback: (Result>) -> Unit, - ) { - val call = rankService.getAllRanks(sortBy, order) - call.fetchResponse( - onSuccess = { rankDtos: List -> - callback(Result.success(rankDtos.map { it.toDomain() })) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) + ): List { + val response = rankService.getAllRanks(sortBy, order) + return response.getValueOrThrow().map { it.toDomain() } } - override fun getMyRank(callback: (Result) -> Unit) { - val call = rankService.getMyRank() - call.fetchResponse( - onSuccess = { rankDto -> - callback(Result.success(rankDto.toDomain())) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) + override suspend fun getMyRank(): Rank { + val response = rankService.getMyRank() + return response.getValueOrThrow().toDomain() } } diff --git a/android/app/src/main/java/com/now/naaga/data/repository/DefaultStatisticsRepository.kt b/android/app/src/main/java/com/now/naaga/data/repository/DefaultStatisticsRepository.kt index c983f9779..7f1d70332 100644 --- a/android/app/src/main/java/com/now/naaga/data/repository/DefaultStatisticsRepository.kt +++ b/android/app/src/main/java/com/now/naaga/data/repository/DefaultStatisticsRepository.kt @@ -3,19 +3,14 @@ package com.now.naaga.data.repository import com.now.domain.model.Statistics import com.now.domain.repository.StatisticsRepository import com.now.naaga.data.mapper.toDomain -import com.now.naaga.data.remote.retrofit.ServicePool.statisticsService -import com.now.naaga.data.remote.retrofit.fetchResponse +import com.now.naaga.data.remote.retrofit.service.StatisticsService +import com.now.naaga.util.getValueOrThrow -class DefaultStatisticsRepository : StatisticsRepository { - override fun getMyStatistics(callback: (Result) -> Unit) { - val call = statisticsService.getMyStatistics() - call.fetchResponse( - onSuccess = { statisticsDto -> - callback(Result.success(statisticsDto.toDomain())) - }, - onFailure = { - callback(Result.failure(it)) - }, - ) +class DefaultStatisticsRepository( + private val statisticsService: StatisticsService, +) : StatisticsRepository { + override suspend fun getMyStatistics(): Statistics { + val response = statisticsService.getMyStatistics() + return response.getValueOrThrow().toDomain() } } diff --git a/android/app/src/main/java/com/now/naaga/di/DataSourceModule.kt b/android/app/src/main/java/com/now/naaga/di/DataSourceModule.kt new file mode 100644 index 000000000..4765ecf64 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/di/DataSourceModule.kt @@ -0,0 +1,19 @@ +package com.now.naaga.di + +import android.content.Context +import com.now.naaga.data.local.AuthDataSource +import com.now.naaga.data.local.DefaultAuthDataSource +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.qualifiers.ApplicationContext +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +class DataSourceModule { + @Singleton + @Provides + fun provideAuthDatasource(@ApplicationContext context: Context): AuthDataSource = DefaultAuthDataSource(context) +} diff --git a/android/app/src/main/java/com/now/naaga/di/RepositoryModule.kt b/android/app/src/main/java/com/now/naaga/di/RepositoryModule.kt new file mode 100644 index 000000000..e7beb9286 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/di/RepositoryModule.kt @@ -0,0 +1,50 @@ +package com.now.naaga.di + +import com.now.domain.repository.AdventureRepository +import com.now.domain.repository.AuthRepository +import com.now.domain.repository.PlaceRepository +import com.now.domain.repository.RankRepository +import com.now.domain.repository.StatisticsRepository +import com.now.naaga.data.local.AuthDataSource +import com.now.naaga.data.remote.retrofit.service.AdventureService +import com.now.naaga.data.remote.retrofit.service.AuthService +import com.now.naaga.data.remote.retrofit.service.PlaceService +import com.now.naaga.data.remote.retrofit.service.RankService +import com.now.naaga.data.remote.retrofit.service.StatisticsService +import com.now.naaga.data.repository.DefaultAdventureRepository +import com.now.naaga.data.repository.DefaultAuthRepository +import com.now.naaga.data.repository.DefaultPlaceRepository +import com.now.naaga.data.repository.DefaultRankRepository +import com.now.naaga.data.repository.DefaultStatisticsRepository +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +class RepositoryModule { + @Singleton + @Provides + fun provideRankRepository(rankService: RankService): RankRepository = DefaultRankRepository(rankService) + + @Singleton + @Provides + fun provideAuthRepository(authDataSource: AuthDataSource, authService: AuthService): AuthRepository = + DefaultAuthRepository(authDataSource, authService) + + @Singleton + @Provides + fun provideAdventureRepository(adventureService: AdventureService): AdventureRepository = + DefaultAdventureRepository(adventureService) + + @Singleton + @Provides + fun providePlaceRepository(placeService: PlaceService): PlaceRepository = DefaultPlaceRepository(placeService) + + @Singleton + @Provides + fun provideStatisticsRepository(statisticsService: StatisticsService): StatisticsRepository = + DefaultStatisticsRepository(statisticsService) +} diff --git a/android/app/src/main/java/com/now/naaga/di/ServiceModule.kt b/android/app/src/main/java/com/now/naaga/di/ServiceModule.kt new file mode 100644 index 000000000..266411eb9 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/di/ServiceModule.kt @@ -0,0 +1,59 @@ +package com.now.naaga.di + +import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory +import com.now.naaga.BuildConfig +import com.now.naaga.data.remote.retrofit.AuthInterceptor +import com.now.naaga.data.remote.retrofit.service.AdventureService +import com.now.naaga.data.remote.retrofit.service.AuthService +import com.now.naaga.data.remote.retrofit.service.PlaceService +import com.now.naaga.data.remote.retrofit.service.RankService +import com.now.naaga.data.remote.retrofit.service.StatisticsService +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import kotlinx.serialization.json.Json +import okhttp3.MediaType.Companion.toMediaType +import okhttp3.OkHttpClient +import retrofit2.Retrofit +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +class ServiceModule { + private val BASE_URL = BuildConfig.BASE_URL + + @Singleton + @Provides + fun provideOkHttpClient(): OkHttpClient = OkHttpClient.Builder().apply { + addInterceptor(AuthInterceptor()) + }.build() + + @Singleton + @Provides + fun provideRetrofit(okHttpClient: OkHttpClient): Retrofit = Retrofit.Builder() + .baseUrl(BASE_URL) + .addConverterFactory(Json.asConverterFactory("application/json".toMediaType())) + .client(okHttpClient) + .build() + + @Singleton + @Provides + fun provideRankService(retrofit: Retrofit): RankService = retrofit.create(RankService::class.java) + + @Singleton + @Provides + fun provideStatisticsService(retrofit: Retrofit): StatisticsService = retrofit.create(StatisticsService::class.java) + + @Singleton + @Provides + fun provideAdventureService(retrofit: Retrofit): AdventureService = retrofit.create(AdventureService::class.java) + + @Singleton + @Provides + fun providePlaceService(retrofit: Retrofit): PlaceService = retrofit.create(PlaceService::class.java) + + @Singleton + @Provides + fun provideAuthService(retrofit: Retrofit): AuthService = retrofit.create(AuthService::class.java) +} diff --git a/android/app/src/main/java/com/now/naaga/presentation/adventurehistory/AdventureHistoryActivity.kt b/android/app/src/main/java/com/now/naaga/presentation/adventurehistory/AdventureHistoryActivity.kt index e4e776905..20ed236f9 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/adventurehistory/AdventureHistoryActivity.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/adventurehistory/AdventureHistoryActivity.kt @@ -3,15 +3,17 @@ package com.now.naaga.presentation.adventurehistory import android.content.Context import android.content.Intent import android.os.Bundle +import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity -import androidx.lifecycle.ViewModelProvider import com.now.domain.model.AdventureResult import com.now.naaga.databinding.ActivityAdventureHistoryBinding import com.now.naaga.presentation.adventurehistory.recyclerview.AdventureHistoryAdapter +import dagger.hilt.android.AndroidEntryPoint +@AndroidEntryPoint class AdventureHistoryActivity : AppCompatActivity() { private lateinit var binding: ActivityAdventureHistoryBinding - private lateinit var viewModel: AdventureHistoryViewModel + private val viewModel: AdventureHistoryViewModel by viewModels() private val historyAdapter = AdventureHistoryAdapter() override fun onCreate(savedInstanceState: Bundle?) { @@ -19,18 +21,12 @@ class AdventureHistoryActivity : AppCompatActivity() { binding = ActivityAdventureHistoryBinding.inflate(layoutInflater) setContentView(binding.root) - initViewModel() initRecyclerView() viewModel.fetchHistories() subscribe() setClickListeners() } - private fun initViewModel() { - viewModel = ViewModelProvider(this, AdventureHistoryViewModel.Factory)[AdventureHistoryViewModel::class.java] - binding.lifecycleOwner = this - } - private fun initRecyclerView() { binding.rvAdventureHistoryVisitedPlaces.apply { adapter = historyAdapter diff --git a/android/app/src/main/java/com/now/naaga/presentation/adventurehistory/AdventureHistoryViewModel.kt b/android/app/src/main/java/com/now/naaga/presentation/adventurehistory/AdventureHistoryViewModel.kt index 5fceb76c8..8a879729f 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/adventurehistory/AdventureHistoryViewModel.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/adventurehistory/AdventureHistoryViewModel.kt @@ -3,16 +3,20 @@ package com.now.naaga.presentation.adventurehistory import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.viewModelScope import com.now.domain.model.AdventureResult import com.now.domain.model.OrderType import com.now.domain.model.SortType import com.now.domain.repository.AdventureRepository -import com.now.naaga.data.repository.DefaultAdventureRepository import com.now.naaga.data.throwable.DataThrowable import com.now.naaga.data.throwable.DataThrowable.PlayerThrowable +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.launch +import javax.inject.Inject -class AdventureHistoryViewModel(private val adventureRepository: AdventureRepository) : ViewModel() { +@HiltViewModel +class AdventureHistoryViewModel @Inject constructor(private val adventureRepository: AdventureRepository) : + ViewModel() { private val _adventureResults = MutableLiveData>() val adventureResults: LiveData> = _adventureResults @@ -20,28 +24,24 @@ class AdventureHistoryViewModel(private val adventureRepository: AdventureReposi val errorMessage: LiveData = _errorMessage fun fetchHistories() { - adventureRepository.fetchMyAdventureResults(SortType.TIME, OrderType.DESCENDING) { result -> - result - .onSuccess { _adventureResults.value = it } - .onFailure { setErrorMessage(it as DataThrowable) } + viewModelScope.launch { + runCatching { + adventureRepository.fetchMyAdventureResults(SortType.TIME, OrderType.DESCENDING) + }.onSuccess { results: List -> + _adventureResults.value = results + }.onFailure { + setErrorMessage(it as DataThrowable) + } } } private fun setErrorMessage(throwable: DataThrowable) { when (throwable) { - is PlayerThrowable -> { _errorMessage.value = throwable.message } - else -> {} - } - } - - companion object { - val Factory = AdventureHistoryFactory(DefaultAdventureRepository()) - - class AdventureHistoryFactory(private val adventureRepository: AdventureRepository) : - ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - return AdventureHistoryViewModel(adventureRepository) as T + is PlayerThrowable -> { + _errorMessage.value = throwable.message } + + else -> {} } } } diff --git a/android/app/src/main/java/com/now/naaga/presentation/adventurehistory/recyclerview/AdventureHistoryViewHolder.kt b/android/app/src/main/java/com/now/naaga/presentation/adventurehistory/recyclerview/AdventureHistoryViewHolder.kt index 8110faa47..5cc167318 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/adventurehistory/recyclerview/AdventureHistoryViewHolder.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/adventurehistory/recyclerview/AdventureHistoryViewHolder.kt @@ -22,8 +22,8 @@ class AdventureHistoryViewHolder(private val binding: ItemHistoryBinding) : Recy private fun setSuccessOrFailure(resultType: AdventureResultType) { when (resultType) { - AdventureResultType.SUCCESS -> binding.ivAdventureHistoryStamp.setImageResource(R.drawable.ic_success) - AdventureResultType.FAIL -> binding.ivAdventureHistoryStamp.setImageResource(R.drawable.ic_fail) + AdventureResultType.SUCCESS -> binding.ivAdventureHistoryStamp.setImageResource(R.drawable.ic_success_label) + AdventureResultType.FAIL -> binding.ivAdventureHistoryStamp.setImageResource(R.drawable.ic_fail_label) AdventureResultType.NONE -> {} } } diff --git a/android/app/src/main/java/com/now/naaga/presentation/adventureresult/AdventureResultActivity.kt b/android/app/src/main/java/com/now/naaga/presentation/adventureresult/AdventureResultActivity.kt index 258636ac0..05a0c8dd7 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/adventureresult/AdventureResultActivity.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/adventureresult/AdventureResultActivity.kt @@ -4,8 +4,8 @@ import android.content.Context import android.content.Intent import android.os.Bundle import android.widget.Toast +import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity -import androidx.lifecycle.ViewModelProvider import com.bumptech.glide.Glide import com.now.domain.model.AdventureResult import com.now.domain.model.AdventureResultType @@ -15,10 +15,12 @@ import com.now.naaga.data.firebase.analytics.AnalyticsDelegate import com.now.naaga.data.firebase.analytics.DefaultAnalyticsDelegate import com.now.naaga.data.firebase.analytics.RESULT_RESULT_RETURN import com.now.naaga.databinding.ActivityAdventureResultBinding +import dagger.hilt.android.AndroidEntryPoint +@AndroidEntryPoint class AdventureResultActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalyticsDelegate() { private lateinit var binding: ActivityAdventureResultBinding - private lateinit var viewModel: AdventureResultViewModel + private val viewModel: AdventureResultViewModel by viewModels() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -42,7 +44,6 @@ class AdventureResultActivity : AppCompatActivity(), AnalyticsDelegate by Defaul } private fun initViewModel() { - viewModel = ViewModelProvider(this, AdventureResultViewModel.Factory)[AdventureResultViewModel::class.java] binding.viewModel = viewModel binding.lifecycleOwner = this } @@ -70,12 +71,12 @@ class AdventureResultActivity : AppCompatActivity(), AnalyticsDelegate by Defaul } private fun setSuccessTypeView(destinationName: String) { - binding.ivAdventureResultStamp.setImageResource(R.drawable.ic_success) + binding.ivAdventureResultStamp.setImageResource(R.drawable.ic_success_label) binding.tvAdventureResultDestination.text = destinationName } private fun setFailTypeView() { - binding.ivAdventureResultStamp.setImageResource(R.drawable.ic_fail) + binding.ivAdventureResultStamp.setImageResource(R.drawable.ic_fail_label) binding.tvAdventureResultDestination.text = getString(R.string.adventureResult_fail_destination_name) } diff --git a/android/app/src/main/java/com/now/naaga/presentation/adventureresult/AdventureResultViewModel.kt b/android/app/src/main/java/com/now/naaga/presentation/adventureresult/AdventureResultViewModel.kt index 0b469b41c..dadce03a4 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/adventureresult/AdventureResultViewModel.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/adventureresult/AdventureResultViewModel.kt @@ -3,16 +3,18 @@ package com.now.naaga.presentation.adventureresult import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.viewModelScope import com.now.domain.model.AdventureResult import com.now.domain.repository.AdventureRepository import com.now.domain.repository.RankRepository -import com.now.naaga.data.repository.DefaultAdventureRepository -import com.now.naaga.data.repository.DefaultRankRepository import com.now.naaga.data.throwable.DataThrowable import com.now.naaga.data.throwable.DataThrowable.GameThrowable +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.launch +import javax.inject.Inject -class AdventureResultViewModel( +@HiltViewModel +class AdventureResultViewModel @Inject constructor( private val adventureRepository: AdventureRepository, private val rankRepository: RankRepository, ) : ViewModel() { @@ -27,44 +29,36 @@ class AdventureResultViewModel( val throwable: LiveData = _throwable fun fetchGameResult(adventureId: Long) { - adventureRepository.fetchAdventureResult( - adventureId, - callback = { result -> - result - .onSuccess { adventureResult -> _adventureResult.value = adventureResult } - .onFailure { setErrorMessage(it as DataThrowable) } - }, - ) + viewModelScope.launch { + runCatching { + adventureRepository.fetchAdventureResult(adventureId) + }.onSuccess { adventureResult -> + _adventureResult.value = adventureResult + }.onFailure { + setErrorMessage(it as DataThrowable) + } + } } fun fetchMyRank() { - rankRepository.getMyRank( - callback = { result -> - result - .onSuccess { rank -> _myRank.value = rank.rank } - .onFailure { setErrorMessage(it as DataThrowable) } - }, - ) + viewModelScope.launch { + runCatching { + rankRepository.getMyRank() + }.onSuccess { rank -> + _myRank.value = rank.rank + }.onFailure { + setErrorMessage(it as DataThrowable) + } + } } private fun setErrorMessage(throwable: DataThrowable) { when (throwable) { - is GameThrowable -> { _throwable.value = throwable } - else -> {} - } - } - - companion object { - val Factory = AdventureResultFactory(DefaultAdventureRepository(), DefaultRankRepository()) - - class AdventureResultFactory( - private val adventureRepository: AdventureRepository, - private val rankRepository: RankRepository, - ) : - ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - return AdventureResultViewModel(adventureRepository, rankRepository) as T + is GameThrowable -> { + _throwable.value = throwable } + + else -> {} } } } diff --git a/android/app/src/main/java/com/now/naaga/presentation/beginadventure/BeginAdventureActivity.kt b/android/app/src/main/java/com/now/naaga/presentation/beginadventure/BeginAdventureActivity.kt index 6b42cffed..79f211617 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/beginadventure/BeginAdventureActivity.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/beginadventure/BeginAdventureActivity.kt @@ -10,26 +10,30 @@ import android.provider.Settings import android.view.View import android.widget.Toast import androidx.activity.result.contract.ActivityResultContracts +import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity -import androidx.lifecycle.ViewModelProvider import com.now.domain.model.AdventureStatus import com.now.naaga.R import com.now.naaga.data.firebase.analytics.AnalyticsDelegate import com.now.naaga.data.firebase.analytics.BEGIN_BEGIN_ADVENTURE import com.now.naaga.data.firebase.analytics.BEGIN_GO_MYPAGE -import com.now.naaga.data.firebase.analytics.BEGIN_GO_RANK +import com.now.naaga.data.firebase.analytics.BEGIN_GO_SETTING import com.now.naaga.data.firebase.analytics.BEGIN_GO_UPLOAD import com.now.naaga.data.firebase.analytics.DefaultAnalyticsDelegate import com.now.naaga.data.throwable.DataThrowable import com.now.naaga.databinding.ActivityBeginAdventureBinding -import com.now.naaga.presentation.beginadventure.LocationPermissionDialog.Companion.TAG_LOCATION_DIALOG +import com.now.naaga.presentation.common.dialog.DialogType +import com.now.naaga.presentation.common.dialog.PermissionDialog import com.now.naaga.presentation.mypage.MyPageActivity import com.now.naaga.presentation.onadventure.OnAdventureActivity -import com.now.naaga.presentation.rank.RankActivity +import com.now.naaga.presentation.setting.SettingActivity +import com.now.naaga.presentation.upload.UploadActivity +import dagger.hilt.android.AndroidEntryPoint +@AndroidEntryPoint class BeginAdventureActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalyticsDelegate() { private lateinit var binding: ActivityBeginAdventureBinding - private lateinit var viewModel: BeginAdventureViewModel + private val viewModel: BeginAdventureViewModel by viewModels() private val onAdventureActivityLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { _ -> @@ -62,7 +66,6 @@ class BeginAdventureActivity : AppCompatActivity(), AnalyticsDelegate by Default startLoading() registerAnalytics(this.lifecycle) - initViewModel() fetchInProgressAdventure() requestLocationPermission() setClickListeners() @@ -72,10 +75,6 @@ class BeginAdventureActivity : AppCompatActivity(), AnalyticsDelegate by Default binding.lifecycleOwner = this } - private fun initViewModel() { - viewModel = ViewModelProvider(this, BeginAdventureViewModel.Factory)[BeginAdventureViewModel::class.java] - } - private fun fetchInProgressAdventure() { viewModel.fetchAdventure(AdventureStatus.IN_PROGRESS) } @@ -115,28 +114,27 @@ class BeginAdventureActivity : AppCompatActivity(), AnalyticsDelegate by Default } private fun setClickListeners() { - binding.clBeginAdventureBegin.setOnClickListener { + binding.btnBeginAdventureBegin.setOnClickListener { logClickEvent(getViewEntryName(it), BEGIN_BEGIN_ADVENTURE) checkPermissionAndBeginAdventure() } - binding.ivBeginAdventureRank.setOnClickListener { - logClickEvent(getViewEntryName(it), BEGIN_GO_RANK) - startActivity(RankActivity.getIntent(this)) - } - binding.ivBeginAdventureUpload.setOnClickListener { + binding.btnBeginAdventureUpload.setOnClickListener { logClickEvent(getViewEntryName(it), BEGIN_GO_UPLOAD) - Toast.makeText(this, getString(R.string.beginAdventure_features_not_ready), Toast.LENGTH_SHORT).show() -// startActivity(UploadActivity.getIntent(this)) + startActivity(UploadActivity.getIntent(this)) } - binding.ivBeginAdventureMypage.setOnClickListener { + binding.btnBeginAdventureMyPage.setOnClickListener { logClickEvent(getViewEntryName(it), BEGIN_GO_MYPAGE) startActivity(MyPageActivity.getIntent(this)) } + binding.ivBeginAdventureSetting.setOnClickListener { + logClickEvent(getViewEntryName(it), BEGIN_GO_SETTING) + startActivity(SettingActivity.getIntent(this)) + } } private fun checkPermissionAndBeginAdventure() { if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_DENIED) { - LocationPermissionDialog().show(supportFragmentManager, TAG_LOCATION_DIALOG) + PermissionDialog(DialogType.LOCATION).show(supportFragmentManager) } else { checkLocationPermissionInStatusBar() } diff --git a/android/app/src/main/java/com/now/naaga/presentation/beginadventure/BeginAdventureViewModel.kt b/android/app/src/main/java/com/now/naaga/presentation/beginadventure/BeginAdventureViewModel.kt index 1a43660f1..a1c45e2d3 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/beginadventure/BeginAdventureViewModel.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/beginadventure/BeginAdventureViewModel.kt @@ -3,14 +3,17 @@ package com.now.naaga.presentation.beginadventure import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.viewModelScope import com.now.domain.model.Adventure import com.now.domain.model.AdventureStatus import com.now.domain.repository.AdventureRepository -import com.now.naaga.data.repository.DefaultAdventureRepository import com.now.naaga.data.throwable.DataThrowable +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.launch +import javax.inject.Inject -class BeginAdventureViewModel(private val adventureRepository: AdventureRepository) : ViewModel() { +@HiltViewModel +class BeginAdventureViewModel @Inject constructor(private val adventureRepository: AdventureRepository) : ViewModel() { private val _adventure = MutableLiveData() val adventure: LiveData = _adventure @@ -22,26 +25,14 @@ class BeginAdventureViewModel(private val adventureRepository: AdventureReposito fun fetchAdventure(adventureStatus: AdventureStatus) { _loading.value = true - adventureRepository.fetchAdventureByStatus(adventureStatus) { result -> - _loading.value = false - result - .onSuccess { - _adventure.value = it.firstOrNull() - } - .onFailure { - _error.value = it as DataThrowable - } - } - } - - companion object { - val Factory = BeginAdventureViewModelFactory(DefaultAdventureRepository()) - - class BeginAdventureViewModelFactory( - private val adventureRepository: AdventureRepository, - ) : ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - return BeginAdventureViewModel(adventureRepository) as T + viewModelScope.launch { + runCatching { + adventureRepository.fetchAdventureByStatus(adventureStatus) + }.onSuccess { + _loading.value = false + _adventure.value = it.firstOrNull() + }.onFailure { + _error.value = it as DataThrowable } } } diff --git a/android/app/src/main/java/com/now/naaga/presentation/common/dialog/DialogType.kt b/android/app/src/main/java/com/now/naaga/presentation/common/dialog/DialogType.kt new file mode 100644 index 000000000..5d5bdeb18 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/presentation/common/dialog/DialogType.kt @@ -0,0 +1,5 @@ +package com.now.naaga.presentation.common.dialog + +enum class DialogType { + LOCATION, CAMERA +} diff --git a/android/app/src/main/java/com/now/naaga/presentation/onadventure/NaagaAlertDialog.kt b/android/app/src/main/java/com/now/naaga/presentation/common/dialog/NaagaAlertDialog.kt similarity index 89% rename from android/app/src/main/java/com/now/naaga/presentation/onadventure/NaagaAlertDialog.kt rename to android/app/src/main/java/com/now/naaga/presentation/common/dialog/NaagaAlertDialog.kt index 1169f4501..a83e31bf1 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/onadventure/NaagaAlertDialog.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/common/dialog/NaagaAlertDialog.kt @@ -1,4 +1,4 @@ -package com.now.naaga.presentation.onadventure +package com.now.naaga.presentation.common.dialog import android.graphics.Color import android.graphics.drawable.ColorDrawable @@ -20,7 +20,7 @@ class NaagaAlertDialog private constructor() : DialogFragment() { private lateinit var positiveAction: () -> Unit private lateinit var negativeAction: () -> Unit - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { _binding = DialogNaagaAlertBinding.inflate(layoutInflater) return binding.root } @@ -62,15 +62,8 @@ class NaagaAlertDialog private constructor() : DialogFragment() { binding.tvAlertDialogNegative.text = negativeText } - fun setPositiveButton(action: () -> Unit) { - positiveAction = action - } - - fun setNegativeButton(action: () -> Unit) { - negativeAction = action - } - class Builder() { + private var isCancelable = true fun build( title: String, @@ -87,8 +80,14 @@ class NaagaAlertDialog private constructor() : DialogFragment() { this.negativeText = negativeText this.positiveAction = positiveAction this.negativeAction = negativeAction + this.isCancelable = this@Builder.isCancelable } } + + fun setCancelable(isCancelable: Boolean): Builder { + this.isCancelable = isCancelable + return this + } } companion object { diff --git a/android/app/src/main/java/com/now/naaga/presentation/beginadventure/LocationPermissionDialog.kt b/android/app/src/main/java/com/now/naaga/presentation/common/dialog/PermissionDialog.kt similarity index 53% rename from android/app/src/main/java/com/now/naaga/presentation/beginadventure/LocationPermissionDialog.kt rename to android/app/src/main/java/com/now/naaga/presentation/common/dialog/PermissionDialog.kt index f6ad86cbc..b541e51d7 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/beginadventure/LocationPermissionDialog.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/common/dialog/PermissionDialog.kt @@ -1,8 +1,7 @@ -package com.now.naaga.presentation.beginadventure +package com.now.naaga.presentation.common.dialog -import android.Manifest.permission.ACCESS_COARSE_LOCATION +import android.annotation.SuppressLint import android.content.Intent -import android.content.pm.PackageManager.PERMISSION_GRANTED import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.net.Uri @@ -11,29 +10,53 @@ import android.provider.Settings import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.core.content.ContextCompat.checkSelfPermission +import androidx.appcompat.content.res.AppCompatResources import androidx.fragment.app.DialogFragment +import androidx.fragment.app.FragmentManager import com.now.naaga.R import com.now.naaga.data.firebase.analytics.AnalyticsDelegate +import com.now.naaga.data.firebase.analytics.CAMERA_PERMISSION_OPEN_SETTING import com.now.naaga.data.firebase.analytics.DefaultAnalyticsDelegate -import com.now.naaga.data.firebase.analytics.LOCATION_PERMISSION_OPEN_SETTING -import com.now.naaga.databinding.DialogLocationPermissionBinding +import com.now.naaga.databinding.DialogPermissionBinding import com.now.naaga.util.dpToPx import com.now.naaga.util.getWidthProportionalToDevice -class LocationPermissionDialog : DialogFragment(), AnalyticsDelegate by DefaultAnalyticsDelegate() { - private lateinit var binding: DialogLocationPermissionBinding +class PermissionDialog(private val type: DialogType) : + DialogFragment(), + AnalyticsDelegate by DefaultAnalyticsDelegate() { + private lateinit var binding: DialogPermissionBinding + @SuppressLint("UseCompatLoadingForDrawables") override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?, ): View { - binding = DialogLocationPermissionBinding.inflate(layoutInflater) + binding = DialogPermissionBinding.inflate(layoutInflater) dialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + initView() return binding.root } + private fun initView() { + binding.btnDialogPermissionSetting.text = getString(R.string.permissionDialog_setting) + when (type) { + DialogType.LOCATION -> { + binding.ivDialogPermissionIcon.setImageDrawable( + AppCompatResources.getDrawable(requireContext(), R.drawable.ic_location_dialog), + ) + binding.tvDialogPermissionDescription.text = getString(R.string.permissionDialog_location_description) + } + + DialogType.CAMERA -> { + binding.ivDialogPermissionIcon.setImageDrawable( + AppCompatResources.getDrawable(requireContext(), R.drawable.ic_camera_dialog), + ) + binding.tvDialogPermissionDescription.text = getString(R.string.permissionDialog_camera_description) + } + } + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) registerAnalytics(this.lifecycle) @@ -41,10 +64,9 @@ class LocationPermissionDialog : DialogFragment(), AnalyticsDelegate by DefaultA override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - checkPermission() setSize() - binding.btnDialogLocationSetting.setOnClickListener { - logClickEvent(requireContext().getViewEntryName(it), LOCATION_PERMISSION_OPEN_SETTING) + binding.btnDialogPermissionSetting.setOnClickListener { + logClickEvent(requireContext().getViewEntryName(it), CAMERA_PERMISSION_OPEN_SETTING) openSetting() dismiss() } @@ -64,27 +86,12 @@ class LocationPermissionDialog : DialogFragment(), AnalyticsDelegate by DefaultA startActivity(appDetailsIntent) } - private fun checkPermission() { - if (checkSelfPermission(requireContext(), ACCESS_COARSE_LOCATION) == PERMISSION_GRANTED) { - setDescription(true) - return - } - setDescription(false) - } - - private fun setDescription(isApproximateAccessGranted: Boolean) { - val description: String = if (isApproximateAccessGranted) { - getString(R.string.locationDialog_approximate_description) - } else { - getString(R.string.locationDialog_description) - } - - binding.tvDialogLocationDescription.text = description + fun show(manager: FragmentManager) { + show(manager, type.name) } companion object { const val WIDTH_RATE = 0.83f const val HEIGHT = 400 - const val TAG_LOCATION_DIALOG = "LOCATION" } } diff --git a/android/app/src/main/java/com/now/naaga/presentation/onadventure/PolaroidDialog.kt b/android/app/src/main/java/com/now/naaga/presentation/common/dialog/PolaroidDialog.kt similarity index 97% rename from android/app/src/main/java/com/now/naaga/presentation/onadventure/PolaroidDialog.kt rename to android/app/src/main/java/com/now/naaga/presentation/common/dialog/PolaroidDialog.kt index c781a384d..2a88ab1ad 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/onadventure/PolaroidDialog.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/common/dialog/PolaroidDialog.kt @@ -1,4 +1,4 @@ -package com.now.naaga.presentation.onadventure +package com.now.naaga.presentation.common.dialog import android.graphics.Color import android.graphics.drawable.ColorDrawable diff --git a/android/app/src/main/java/com/now/naaga/presentation/login/LoginActivity.kt b/android/app/src/main/java/com/now/naaga/presentation/login/LoginActivity.kt index e81fd810d..1e2f9f673 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/login/LoginActivity.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/login/LoginActivity.kt @@ -2,25 +2,25 @@ package com.now.naaga.presentation.login import android.content.Context import android.content.Intent +import android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK +import android.content.Intent.FLAG_ACTIVITY_NEW_TASK import android.os.Bundle import android.widget.Toast +import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity -import androidx.core.view.WindowInsetsControllerCompat -import androidx.lifecycle.ViewModelProvider import com.now.domain.model.AuthPlatformType -import com.now.naaga.NaagaApplication -import com.now.naaga.R import com.now.naaga.data.firebase.analytics.AnalyticsDelegate import com.now.naaga.data.firebase.analytics.DefaultAnalyticsDelegate import com.now.naaga.data.firebase.analytics.LOGIN_AUTH -import com.now.naaga.data.repository.DefaultAuthRepository import com.now.naaga.databinding.ActivityLoginBinding import com.now.naaga.presentation.beginadventure.BeginAdventureActivity import com.now.naaga.util.loginWithKakao +import dagger.hilt.android.AndroidEntryPoint +@AndroidEntryPoint class LoginActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalyticsDelegate() { private lateinit var binding: ActivityLoginBinding - private lateinit var viewModel: LoginViewModel + private val viewModel: LoginViewModel by viewModels() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -28,15 +28,8 @@ class LoginActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytics binding.lifecycleOwner = this setContentView(binding.root) registerAnalytics(this.lifecycle) - initViewModel() subscribe() setClickListeners() - setStatusBar() - } - - private fun initViewModel() { - val factory = LoginViewModelFactory(DefaultAuthRepository(NaagaApplication.authDataSource)) - viewModel = ViewModelProvider(this, factory)[LoginViewModel::class.java] } private fun subscribe() { @@ -58,13 +51,6 @@ class LoginActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytics } } - private fun setStatusBar() { - window.apply { - statusBarColor = getColor(R.color.white) - WindowInsetsControllerCompat(this, this.decorView).isAppearanceLightStatusBars = true - } - } - private fun navigateHome() { val intent = BeginAdventureActivity.getIntent(this) startActivity(intent) @@ -75,5 +61,12 @@ class LoginActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytics fun getIntent(context: Context): Intent { return Intent(context, LoginActivity::class.java) } + + fun getIntentWithTop(context: Context): Intent { + return Intent(context, LoginActivity::class.java).apply { + addFlags(FLAG_ACTIVITY_NEW_TASK) + addFlags(FLAG_ACTIVITY_CLEAR_TASK) + } + } } } diff --git a/android/app/src/main/java/com/now/naaga/presentation/login/LoginViewModel.kt b/android/app/src/main/java/com/now/naaga/presentation/login/LoginViewModel.kt index 788c29670..0637fb344 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/login/LoginViewModel.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/login/LoginViewModel.kt @@ -3,12 +3,17 @@ package com.now.naaga.presentation.login import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope import com.now.domain.model.AuthPlatformType import com.now.domain.model.PlatformAuth import com.now.domain.repository.AuthRepository import com.now.naaga.data.throwable.DataThrowable +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.launch +import javax.inject.Inject -class LoginViewModel( +@HiltViewModel +class LoginViewModel @Inject constructor( private val authRepository: AuthRepository, ) : ViewModel() { private val _isLoginSucceed = MutableLiveData() @@ -18,10 +23,14 @@ class LoginViewModel( val throwable: LiveData = _throwable fun signIn(token: String, platformType: AuthPlatformType) { - authRepository.getToken(PlatformAuth(token, platformType)) { result -> - result - .onSuccess { _isLoginSucceed.value = it } - .onFailure { _throwable.value = it as DataThrowable } + viewModelScope.launch { + runCatching { + authRepository.getToken(PlatformAuth(token, platformType)) + }.onSuccess { status -> + _isLoginSucceed.value = status + }.onFailure { + _throwable.value = it as DataThrowable + } } } } diff --git a/android/app/src/main/java/com/now/naaga/presentation/login/LoginViewModelFactory.kt b/android/app/src/main/java/com/now/naaga/presentation/login/LoginViewModelFactory.kt deleted file mode 100644 index 12b5a8f5b..000000000 --- a/android/app/src/main/java/com/now/naaga/presentation/login/LoginViewModelFactory.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.now.naaga.presentation.login - -import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider -import com.now.domain.repository.AuthRepository - -class LoginViewModelFactory( - private val authRepository: AuthRepository, -) : - ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - if (modelClass.isAssignableFrom(LoginViewModel::class.java)) { - return LoginViewModel(authRepository) as T - } else { - throw IllegalArgumentException() - } - } -} diff --git a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageActivity.kt b/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageActivity.kt index 355a02b41..392bff895 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageActivity.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageActivity.kt @@ -4,18 +4,23 @@ import android.content.Context import android.content.Intent import android.os.Bundle import android.widget.Toast +import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity -import androidx.lifecycle.ViewModelProvider +import com.now.domain.model.Statistics import com.now.naaga.data.firebase.analytics.AnalyticsDelegate import com.now.naaga.data.firebase.analytics.DefaultAnalyticsDelegate import com.now.naaga.data.firebase.analytics.MYPAGE_GO_RESULTS import com.now.naaga.data.firebase.analytics.MY_PAGE_STATISTICS import com.now.naaga.databinding.ActivityMyPageBinding import com.now.naaga.presentation.adventurehistory.AdventureHistoryActivity +import com.now.naaga.presentation.mypage.statistics.MyPageStatisticsAdapter +import com.now.naaga.presentation.uimodel.model.StatisticsUiModel +import dagger.hilt.android.AndroidEntryPoint +@AndroidEntryPoint class MyPageActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalyticsDelegate() { private lateinit var binding: ActivityMyPageBinding - private lateinit var viewModel: MyPageViewModel + private val viewModel: MyPageViewModel by viewModels() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -29,7 +34,6 @@ class MyPageActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytic } private fun initViewModel() { - viewModel = ViewModelProvider(this, MyPageViewModel.Factory)[MyPageViewModel::class.java] binding.viewModel = viewModel binding.lifecycleOwner = this } @@ -38,7 +42,7 @@ class MyPageActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytic binding.ivMypageBack.setOnClickListener { finish() } - binding.btnMypageAdventureResults.setOnClickListener { + binding.btnMypageAdventureHistory.setOnClickListener { logClickEvent(getViewEntryName(it), MYPAGE_GO_RESULTS) val intent = AdventureHistoryActivity.getIntent(this) startActivity(intent) @@ -53,11 +57,11 @@ class MyPageActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytic private fun subscribe() { viewModel.statistics.observe(this) { statistics -> - binding.customGridMypageStatistics.initContent(statistics.toUiModel(this)) + initRecyclerView(statistics) } viewModel.places.observe(this) { places -> - val placesUiModel = places.map { it.toUiModel() } - binding.customGridMypagePlaces.initContent(placesUiModel) + val placesUiModels = places.map { it.toUiModel() } + binding.customGridMypagePlaces.initContent(placesUiModels) } viewModel.throwable.observe(this) { throwable -> Toast.makeText(this, throwable.message, Toast.LENGTH_SHORT).show() @@ -65,6 +69,16 @@ class MyPageActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytic } } + private fun initRecyclerView(statistics: Statistics) { + val statisticsUiModels = mutableListOf( + StatisticsUiModel.getSuccessAdventureStatisticsModel(statistics.successCount), + StatisticsUiModel.getFailAdventureStatisticsModel(statistics.failureCount), + StatisticsUiModel.getAllAdventureStatisticsModel(statistics.adventureCount), + ) + val adapter = MyPageStatisticsAdapter(statisticsUiModels) + binding.rvMypageStatistics.adapter = adapter + } + companion object { fun getIntent(context: Context): Intent { return Intent(context, MyPageActivity::class.java) diff --git a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageAdapter.kt b/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageAdapter.kt deleted file mode 100644 index 79672c0c8..000000000 --- a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageAdapter.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.now.naaga.presentation.mypage - -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView - -class MyPageAdapter( - private val contents: List, -) : RecyclerView.Adapter() { - - override fun getItemCount(): Int { - return contents.size - } - - override fun getItemViewType(position: Int): Int { - return when (contents[position].viewType) { - MyPageViewType.PLACES -> MyPageViewType.PLACES.ordinal - MyPageViewType.STATISTICS -> MyPageViewType.STATISTICS.ordinal - } - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { - return when (viewType) { - MyPageViewType.PLACES.ordinal -> MyPagePlaceViewHolder(MyPagePlaceViewHolder.getView(parent)) - MyPageViewType.STATISTICS.ordinal -> MyPageStatisticsViewHolder(MyPageStatisticsViewHolder.getView(parent)) - else -> throw IllegalArgumentException() - } - } - - override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { - when (holder) { - is MyPagePlaceViewHolder -> holder.bind(contents[position] as MyPagePlaceUiModel) - is MyPageStatisticsViewHolder -> holder.bind(contents[position] as MyPageStatisticsUiModel) - } - } -} diff --git a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageCustomGrid.kt b/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageCustomGrid.kt deleted file mode 100644 index 620920495..000000000 --- a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageCustomGrid.kt +++ /dev/null @@ -1,53 +0,0 @@ -package com.now.naaga.presentation.mypage - -import android.content.Context -import android.util.AttributeSet -import android.view.LayoutInflater -import androidx.constraintlayout.widget.ConstraintLayout -import com.now.naaga.R -import com.now.naaga.databinding.CustomMypageGridBinding -import com.now.naaga.databinding.CustomMypageGridEmptyBinding - -class MyPageCustomGrid(context: Context, attrs: AttributeSet? = null) : ConstraintLayout(context, attrs) { - private lateinit var layoutInflater: LayoutInflater - private lateinit var notEmptybinding: CustomMypageGridBinding - private lateinit var emptyBinding: CustomMypageGridEmptyBinding - private lateinit var adapter: MyPageAdapter - - private fun initNotEmptyView() { - layoutInflater = LayoutInflater.from(context) - notEmptybinding = CustomMypageGridBinding.inflate(layoutInflater, this, true) - } - - private fun initEmptyView() { - layoutInflater = LayoutInflater.from(context) - emptyBinding = CustomMypageGridEmptyBinding.inflate(layoutInflater, this, true) - } - - fun initContent(data: List) { - if (data.isNotEmpty()) { - initNotEmptyView() - makeAdapter(data) - notEmptybinding.tvMypageItemTitle.text = data.first().viewType.text - notEmptybinding.rvMypageItemContent.adapter = adapter - } else { - initEmptyView() - emptyBinding.tvMypageEmptyItemTitle.text = context.getString(R.string.mypage_empty_item_title) - emptyBinding.tvMypageEmptyDescription.text = context.getString(R.string.mypage_empty_description) - } - } - - private fun makeAdapter(data: List) { - adapter = if (data.first().viewType == MyPageViewType.PLACES) { - val lastIndex = if (data.size > END_PLACE_INDEX) END_PLACE_INDEX else data.size - MyPageAdapter(data.subList(START_PLACE_INDEX, lastIndex)) - } else { - MyPageAdapter(data) - } - } - - companion object { - const val START_PLACE_INDEX = 0 - const val END_PLACE_INDEX = 3 - } -} diff --git a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageItemUiModel.kt b/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageItemUiModel.kt deleted file mode 100644 index 02f2c1430..000000000 --- a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageItemUiModel.kt +++ /dev/null @@ -1,19 +0,0 @@ -package com.now.naaga.presentation.mypage - -abstract class MyPageItemUiModel(val viewType: MyPageViewType) - -data class MyPagePlaceUiModel( - val image: String, - val description: String, -) : MyPageItemUiModel(MyPageViewType.PLACES) - -data class MyPageStatisticsUiModel( - val value: Int, - val unit: String, - val description: String, -) : MyPageItemUiModel(MyPageViewType.STATISTICS) - -enum class MyPageViewType(val text: String) { - STATISTICS("Statistics"), - PLACES("My Places"), -} diff --git a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageMapper.kt b/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageMapper.kt index afc20423d..7910a3aeb 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageMapper.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageMapper.kt @@ -1,44 +1,7 @@ package com.now.naaga.presentation.mypage -import android.content.Context import com.now.domain.model.Place -import com.now.domain.model.Statistics -import com.now.naaga.R - -fun Statistics.toUiModel(context: Context): List { - return listOf( - MyPageStatisticsUiModel( - adventureCount, - context.getString(R.string.mypage_count), - context.getString(R.string.mypage_total_adventure), - ), - MyPageStatisticsUiModel( - successCount, - context.getString(R.string.mypage_count), - context.getString(R.string.mypage_adventure_success), - ), - MyPageStatisticsUiModel( - failureCount, - context.getString(R.string.mypage_count), - context.getString(R.string.mypage_adventure_failure), - ), - MyPageStatisticsUiModel( - totalPlayTime, - context.getString(R.string.mypage_minute), - context.getString(R.string.mypage_total_play_time), - ), - MyPageStatisticsUiModel( - totalDistance, - context.getString(R.string.mypage_meter), - context.getString(R.string.mypage_total_adventure_distance), - ), - MyPageStatisticsUiModel( - totalHintUses, - context.getString(R.string.mypage_number), - context.getString(R.string.mypage_total_hint_uses), - ), - ) -} +import com.now.naaga.presentation.uimodel.model.MyPagePlaceUiModel fun Place.toUiModel(): MyPagePlaceUiModel { return MyPagePlaceUiModel( diff --git a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageViewHolder.kt b/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageViewHolder.kt deleted file mode 100644 index 69bf03b26..000000000 --- a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageViewHolder.kt +++ /dev/null @@ -1,42 +0,0 @@ -package com.now.naaga.presentation.mypage - -import android.view.LayoutInflater -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView -import com.bumptech.glide.Glide -import com.now.naaga.databinding.RvMypageItemPlaceBinding -import com.now.naaga.databinding.RvMypageItemStatisticsBinding - -class MyPagePlaceViewHolder(private val binding: RvMypageItemPlaceBinding) : RecyclerView.ViewHolder(binding.root) { - fun bind(data: MyPagePlaceUiModel) { - binding.model = data - Glide.with(binding.ivMypageItem).load(data.image).into(binding.ivMypageItem) - binding.ivMypageItem.clipToOutline = true - } - - companion object { - fun getView(parent: ViewGroup): RvMypageItemPlaceBinding { - val layoutInflater: LayoutInflater = LayoutInflater.from(parent.context) - return RvMypageItemPlaceBinding.inflate(layoutInflater, parent, false) - } - } -} - -class MyPageStatisticsViewHolder(private val binding: RvMypageItemStatisticsBinding) : - RecyclerView.ViewHolder(binding.root) { - fun bind(data: MyPageStatisticsUiModel) { - binding.model = data - - // 숫자가 1자리일 때 36, 2자리일 때 32 ... 이렇게 4단위로 내려가도록 계산함. - // 단 10자리 부터는 0혹은 음수가 나올 수 있음 - val fontSize = (10 - (data.value / 10)) * 4 - binding.tvMypageItemValue.textSize = fontSize.toFloat() - } - - companion object { - fun getView(parent: ViewGroup): RvMypageItemStatisticsBinding { - val layoutInflater: LayoutInflater = LayoutInflater.from(parent.context) - return RvMypageItemStatisticsBinding.inflate(layoutInflater, parent, false) - } - } -} diff --git a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageViewModel.kt b/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageViewModel.kt index 12cabaa4c..c7b8979a9 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageViewModel.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/mypage/MyPageViewModel.kt @@ -3,7 +3,7 @@ package com.now.naaga.presentation.mypage import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.viewModelScope import com.now.domain.model.OrderType import com.now.domain.model.Place import com.now.domain.model.Rank @@ -12,14 +12,15 @@ import com.now.domain.model.Statistics import com.now.domain.repository.PlaceRepository import com.now.domain.repository.RankRepository import com.now.domain.repository.StatisticsRepository -import com.now.naaga.data.repository.DefaultPlaceRepository -import com.now.naaga.data.repository.DefaultRankRepository -import com.now.naaga.data.repository.DefaultStatisticsRepository import com.now.naaga.data.throwable.DataThrowable import com.now.naaga.data.throwable.DataThrowable.PlaceThrowable import com.now.naaga.data.throwable.DataThrowable.PlayerThrowable +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.launch +import javax.inject.Inject -class MyPageViewModel( +@HiltViewModel +class MyPageViewModel @Inject constructor( private val rankRepository: RankRepository, private val statisticsRepository: StatisticsRepository, private val placeRepository: PlaceRepository, @@ -37,48 +38,52 @@ class MyPageViewModel( val throwable: LiveData = _throwable fun fetchRank() { - rankRepository.getMyRank { result: Result -> - result - .onSuccess { rank -> _rank.value = rank } - .onFailure { setErrorMessage(it as DataThrowable) } + viewModelScope.launch { + runCatching { + rankRepository.getMyRank() + }.onSuccess { rank -> + _rank.value = rank + }.onFailure { + setErrorMessage(it as DataThrowable) + } } } fun fetchStatistics() { - statisticsRepository.getMyStatistics { result: Result -> - result - .onSuccess { statistics -> _statistics.value = statistics } - .onFailure { setErrorMessage(it as DataThrowable) } + viewModelScope.launch { + runCatching { + statisticsRepository.getMyStatistics() + }.onSuccess { statistics -> + _statistics.value = statistics + }.onFailure { + setErrorMessage(it as DataThrowable) + } } } fun fetchPlaces() { - placeRepository.fetchMyPlaces(SortType.TIME.name, OrderType.DESCENDING.name) { result -> - result - .onSuccess { places -> _places.value = places } - .onFailure { setErrorMessage(it as DataThrowable) } + viewModelScope.launch { + runCatching { + placeRepository.fetchMyPlaces(SortType.TIME.name, OrderType.DESCENDING.name) + }.onSuccess { places -> + _places.value = places + }.onFailure { + setErrorMessage(it as DataThrowable) + } } } private fun setErrorMessage(throwable: Throwable) { when (throwable) { - is PlayerThrowable -> { _throwable.value = throwable } - is PlaceThrowable -> { _throwable.value = throwable } - else -> {} - } - } - - companion object { - val Factory = MyPageFactory(DefaultRankRepository(), DefaultStatisticsRepository(), DefaultPlaceRepository()) + is PlayerThrowable -> { + _throwable.value = throwable + } - class MyPageFactory( - private val rankRepository: RankRepository, - private val statisticsRepository: StatisticsRepository, - private val placeRepository: PlaceRepository, - ) : ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - return MyPageViewModel(rankRepository, statisticsRepository, placeRepository) as T + is PlaceThrowable -> { + _throwable.value = throwable } + + else -> {} } } } diff --git a/android/app/src/main/java/com/now/naaga/presentation/mypage/place/MyPageCustomGrid.kt b/android/app/src/main/java/com/now/naaga/presentation/mypage/place/MyPageCustomGrid.kt new file mode 100644 index 000000000..1b96fbfb6 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/presentation/mypage/place/MyPageCustomGrid.kt @@ -0,0 +1,34 @@ +package com.now.naaga.presentation.mypage.place + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import com.now.naaga.databinding.CustomMypageGridBinding +import com.now.naaga.databinding.CustomMypageGridEmptyBinding +import com.now.naaga.presentation.uimodel.model.MyPagePlaceUiModel + +class MyPageCustomGrid(context: Context, attrs: AttributeSet? = null) : ConstraintLayout(context, attrs) { + private lateinit var layoutInflater: LayoutInflater + private lateinit var placeBinding: CustomMypageGridBinding + private lateinit var emptyBinding: CustomMypageGridEmptyBinding + + private fun initPlaceBinding() { + layoutInflater = LayoutInflater.from(context) + placeBinding = CustomMypageGridBinding.inflate(layoutInflater, this, true) + } + + private fun initEmptyBinding() { + layoutInflater = LayoutInflater.from(context) + emptyBinding = CustomMypageGridEmptyBinding.inflate(layoutInflater, this, true) + } + + fun initContent(data: List) { + if (data.isNotEmpty()) { + initPlaceBinding() + placeBinding.rvMypageItemContent.adapter = MyPagePlaceAdapter(data) + } else { + initEmptyBinding() + } + } +} diff --git a/android/app/src/main/java/com/now/naaga/presentation/mypage/place/MyPagePlaceAdapter.kt b/android/app/src/main/java/com/now/naaga/presentation/mypage/place/MyPagePlaceAdapter.kt new file mode 100644 index 000000000..1721e3bec --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/presentation/mypage/place/MyPagePlaceAdapter.kt @@ -0,0 +1,22 @@ +package com.now.naaga.presentation.mypage.place + +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.now.naaga.presentation.uimodel.model.MyPagePlaceUiModel + +class MyPagePlaceAdapter( + private val contents: List, +) : RecyclerView.Adapter() { + + override fun getItemCount(): Int { + return contents.size + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyPagePlaceViewHolder { + return MyPagePlaceViewHolder(parent) + } + + override fun onBindViewHolder(holder: MyPagePlaceViewHolder, position: Int) { + holder.bind(contents[position]) + } +} diff --git a/android/app/src/main/java/com/now/naaga/presentation/mypage/place/MyPagePlaceViewHolder.kt b/android/app/src/main/java/com/now/naaga/presentation/mypage/place/MyPagePlaceViewHolder.kt new file mode 100644 index 000000000..8a7af3d24 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/presentation/mypage/place/MyPagePlaceViewHolder.kt @@ -0,0 +1,27 @@ +package com.now.naaga.presentation.mypage.place + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide +import com.now.naaga.R +import com.now.naaga.databinding.RvMypageItemPlaceBinding +import com.now.naaga.presentation.uimodel.model.MyPagePlaceUiModel + +class MyPagePlaceViewHolder(parent: ViewGroup) : RecyclerView.ViewHolder( + LayoutInflater.from(parent.context).inflate( + R.layout.rv_mypage_item_place, + parent, + false, + ), +) { + private val binding = RvMypageItemPlaceBinding.bind(itemView) + + fun bind(data: MyPagePlaceUiModel) { + binding.apply { + model = data + Glide.with(ivMypageItem).load(data.image).into(ivMypageItem) + ivMypageItem.clipToOutline = true + } + } +} diff --git a/android/app/src/main/java/com/now/naaga/presentation/mypage/statistics/MyPageStatisticsAdapter.kt b/android/app/src/main/java/com/now/naaga/presentation/mypage/statistics/MyPageStatisticsAdapter.kt new file mode 100644 index 000000000..b7260a77e --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/presentation/mypage/statistics/MyPageStatisticsAdapter.kt @@ -0,0 +1,20 @@ +package com.now.naaga.presentation.mypage.statistics + +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.now.naaga.presentation.uimodel.model.StatisticsUiModel + +class MyPageStatisticsAdapter(private val statisticsUiModels: List) : + RecyclerView.Adapter() { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyPageStatisticsViewHolder { + return MyPageStatisticsViewHolder(parent) + } + + override fun onBindViewHolder(holder: MyPageStatisticsViewHolder, position: Int) { + holder.bind(statisticsUiModels[position]) + } + + override fun getItemCount(): Int { + return statisticsUiModels.size + } +} diff --git a/android/app/src/main/java/com/now/naaga/presentation/mypage/statistics/MyPageStatisticsViewHolder.kt b/android/app/src/main/java/com/now/naaga/presentation/mypage/statistics/MyPageStatisticsViewHolder.kt new file mode 100644 index 000000000..20669b013 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/presentation/mypage/statistics/MyPageStatisticsViewHolder.kt @@ -0,0 +1,27 @@ +package com.now.naaga.presentation.mypage.statistics + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.appcompat.content.res.AppCompatResources +import androidx.recyclerview.widget.RecyclerView +import com.now.naaga.R +import com.now.naaga.databinding.RvMypageItemAdventureBinding +import com.now.naaga.presentation.uimodel.model.StatisticsUiModel + +class MyPageStatisticsViewHolder(parent: ViewGroup) : RecyclerView.ViewHolder( + LayoutInflater.from(parent.context).inflate(R.layout.rv_mypage_item_adventure, parent, false), +) { + private val binding = RvMypageItemAdventureBinding.bind(itemView) + + fun bind(statisticsUiModels: StatisticsUiModel) { + binding.apply { + ivMypageItemIcon.setImageDrawable( + AppCompatResources.getDrawable(itemView.context, statisticsUiModels.icon), + ) + tvMypageItemAdventureCount.text = statisticsUiModels.count.toString() + tvMypageItemAdventureTitle.text = statisticsUiModels.detail + vMypageItemIconBackground.background = + AppCompatResources.getDrawable(itemView.context, statisticsUiModels.background) + } + } +} diff --git a/android/app/src/main/java/com/now/naaga/presentation/onadventure/OnAdventureActivity.kt b/android/app/src/main/java/com/now/naaga/presentation/onadventure/OnAdventureActivity.kt index 94d139bb9..831188b5c 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/onadventure/OnAdventureActivity.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/onadventure/OnAdventureActivity.kt @@ -6,10 +6,10 @@ import android.os.Bundle import android.view.View import android.widget.Toast import androidx.activity.OnBackPressedCallback +import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import com.google.android.material.snackbar.Snackbar import com.now.domain.model.Adventure import com.now.domain.model.AdventureStatus @@ -26,17 +26,21 @@ import com.now.naaga.data.firebase.analytics.ON_ADVENTURE_SHOW_POLAROID import com.now.naaga.data.throwable.DataThrowable import com.now.naaga.databinding.ActivityOnAdventureBinding import com.now.naaga.presentation.adventureresult.AdventureResultActivity +import com.now.naaga.presentation.common.dialog.NaagaAlertDialog +import com.now.naaga.presentation.common.dialog.PolaroidDialog import com.now.naaga.presentation.uimodel.mapper.toDomain import com.now.naaga.presentation.uimodel.mapper.toUi import com.now.naaga.presentation.uimodel.model.AdventureUiModel -import com.now.naaga.util.getParcelableCompat +import com.now.naaga.util.extension.getParcelableCompat +import dagger.hilt.android.AndroidEntryPoint +@AndroidEntryPoint class OnAdventureActivity : AppCompatActivity(), NaverMapSettingDelegate by DefaultNaverMapSettingDelegate(), AnalyticsDelegate by DefaultAnalyticsDelegate() { private lateinit var binding: ActivityOnAdventureBinding - private lateinit var viewModel: OnAdventureViewModel + private val viewModel: OnAdventureViewModel by viewModels() override fun onCreate(savedInstanceState: Bundle?) { setNaverMap(this, R.id.fcv_onAdventure_map) @@ -69,15 +73,15 @@ class OnAdventureActivity : } private fun setClickListeners() { - binding.ivOnAdventureGiveUp.setOnClickListener { + binding.clOnAdventureStop.setOnClickListener { logClickEvent(getViewEntryName(it), ON_ADVENTURE_SHOW_GIVE_UP) showGiveUpDialog() } - binding.ivOnAdventurePhoto.setOnClickListener { + binding.clOnAdventureShowPhoto.setOnClickListener { logClickEvent(getViewEntryName(it), ON_ADVENTURE_SHOW_POLAROID) showPolaroidDialog() } - binding.ivOnAdventureHint.setOnClickListener { + binding.clOnAdventureSearchDirection.setOnClickListener { logClickEvent(getViewEntryName(it), ON_ADVENTURE_SHOW_HINT) showHintDialog() } @@ -97,12 +101,13 @@ class OnAdventureActivity : viewModel.hints.observe(this) { hints -> drawHintMarkers(hints) binding.lottieOnAdventureLoading.visibility = View.GONE + showPolaroidDialog() } viewModel.lastHint.observe(this) { drawHintMarkers(listOf(it)) } viewModel.remainingHintCount.observe(this) { - binding.tvOnAdventureHintCount.text = it.toString() + // binding.tvOnAdventureHintCount.text = it.toString() } viewModel.error.observe(this) { error: DataThrowable -> logServerError(ON_ADVENTURE_GAME, error.code, error.message.toString()) @@ -124,7 +129,6 @@ class OnAdventureActivity : } private fun initViewModel() { - viewModel = ViewModelProvider(this, OnAdventureViewModel.Factory)[OnAdventureViewModel::class.java] binding.viewModel = viewModel binding.lifecycleOwner = this } diff --git a/android/app/src/main/java/com/now/naaga/presentation/onadventure/OnAdventureViewModel.kt b/android/app/src/main/java/com/now/naaga/presentation/onadventure/OnAdventureViewModel.kt index 66ce642ed..3119d6753 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/onadventure/OnAdventureViewModel.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/onadventure/OnAdventureViewModel.kt @@ -3,8 +3,8 @@ package com.now.naaga.presentation.onadventure import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.map +import androidx.lifecycle.viewModelScope import com.now.domain.model.Adventure import com.now.domain.model.AdventureEndType import com.now.domain.model.AdventureStatus @@ -12,13 +12,16 @@ import com.now.domain.model.Coordinate import com.now.domain.model.Hint import com.now.domain.model.RemainingTryCount import com.now.domain.repository.AdventureRepository -import com.now.naaga.data.repository.DefaultAdventureRepository import com.now.naaga.data.throwable.DataThrowable import com.now.naaga.data.throwable.DataThrowable.Companion.hintThrowable import com.now.naaga.data.throwable.DataThrowable.GameThrowable import com.now.naaga.data.throwable.DataThrowable.UniversalThrowable +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.launch +import javax.inject.Inject -class OnAdventureViewModel(private val adventureRepository: AdventureRepository) : ViewModel() { +@HiltViewModel +class OnAdventureViewModel @Inject constructor(private val adventureRepository: AdventureRepository) : ViewModel() { private val _adventure = MutableLiveData() val adventure: LiveData = _adventure val hints = DisposableLiveData>(_adventure.map { it.hints }) @@ -41,22 +44,30 @@ class OnAdventureViewModel(private val adventureRepository: AdventureRepository) } fun beginAdventure(currentCoordinate: Coordinate) { - adventureRepository.beginAdventure(currentCoordinate) { result: Result -> - result - .onSuccess { setAdventure(it) } - .onFailure { setError(it as DataThrowable) } + viewModelScope.launch { + runCatching { + adventureRepository.beginAdventure(currentCoordinate) + }.onSuccess { + setAdventure(it) + }.onFailure { + setError(it as DataThrowable) + } } } fun giveUpAdventure() { - adventureRepository.endGame( - adventureId = adventure.value?.id ?: return, - endType = AdventureEndType.GIVE_UP, - coordinate = myCoordinate.value ?: return, - ) { result: Result -> - result - .onSuccess { _adventure.value = adventure.value?.copy(adventureStatus = it) } - .onFailure { setError(it as DataThrowable) } + viewModelScope.launch { + runCatching { + adventureRepository.endGame( + adventureId = adventure.value?.id ?: throw IllegalStateException(ADVENTURE_IS_NULL), + endType = AdventureEndType.GIVE_UP, + coordinate = myCoordinate.value ?: throw IllegalStateException(MY_COORDINATE_IS_NULL), + ) + }.onSuccess { status: AdventureStatus -> + _adventure.value = adventure.value?.copy(adventureStatus = status) + }.onFailure { + setError(it as DataThrowable) + } } } @@ -65,16 +76,18 @@ class OnAdventureViewModel(private val adventureRepository: AdventureRepository) setError(hintThrowable) return } - adventureRepository.makeHint( - adventureId = adventure.value?.id ?: return, - coordinate = myCoordinate.value ?: return, - ) { result: Result -> - result - .onSuccess { hint -> - _adventure.value = adventure.value?.copy(hints = ((adventure.value?.hints ?: listOf()) + hint)) - _lastHint.value = hint - } - .onFailure { setError(it as DataThrowable) } + viewModelScope.launch { + runCatching { + adventureRepository.makeHint( + adventureId = adventure.value?.id ?: throw IllegalStateException(ADVENTURE_IS_NULL), + coordinate = myCoordinate.value ?: throw IllegalStateException(MY_COORDINATE_IS_NULL), + ) + }.onSuccess { hint: Hint -> + _adventure.value = adventure.value?.copy(hints = ((adventure.value?.hints ?: listOf()) + hint)) + _lastHint.value = hint + }.onFailure { + setError(it as DataThrowable) + } } } @@ -88,25 +101,25 @@ class OnAdventureViewModel(private val adventureRepository: AdventureRepository) } fun endAdventure() { - adventureRepository.endGame( - adventureId = adventure.value?.id ?: return, - endType = AdventureEndType.ARRIVED, - coordinate = myCoordinate.value ?: return, - ) { result: Result -> - result - .onSuccess { _adventure.value = adventure.value?.copy(adventureStatus = it) } - .onFailure { - when ((it as DataThrowable).code) { - NOT_ARRIVED -> { - val currentRemainingTryCount = adventure.value?.remainingTryCount ?: return@onFailure - _adventure.value = adventure.value?.copy(remainingTryCount = currentRemainingTryCount - 1) - } - - TRY_COUNT_OVER -> - _adventure.value = adventure.value?.copy(adventureStatus = AdventureStatus.DONE) + viewModelScope.launch { + runCatching { + adventureRepository.endGame( + adventureId = adventure.value?.id ?: throw IllegalStateException(ADVENTURE_IS_NULL), + endType = AdventureEndType.ARRIVED, + coordinate = myCoordinate.value ?: throw IllegalStateException(MY_COORDINATE_IS_NULL), + ) + }.onSuccess { + _adventure.value = adventure.value?.copy(adventureStatus = it) + }.onFailure { + when ((it as DataThrowable).code) { + TRY_COUNT_OVER -> _adventure.value = adventure.value?.copy(adventureStatus = AdventureStatus.DONE) + NOT_ARRIVED -> { + val currentRemainingTryCount = adventure.value?.remainingTryCount ?: return@onFailure + _adventure.value = adventure.value?.copy(remainingTryCount = currentRemainingTryCount - 1) } - setError(it) } + setError(it) + } } } @@ -123,12 +136,8 @@ class OnAdventureViewModel(private val adventureRepository: AdventureRepository) const val NO_DESTINATION = 406 const val NOT_ARRIVED = 415 const val TRY_COUNT_OVER = 416 - val Factory = ViewModelFactory(DefaultAdventureRepository()) - - class ViewModelFactory(private val adventureRepository: AdventureRepository) : ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - return OnAdventureViewModel(adventureRepository) as T - } - } + private const val ERROR_PREFIX = "[ERROR] OnAdventureViewModel:" + private const val ADVENTURE_IS_NULL = "$ERROR_PREFIX adventure가 널입니다." + private const val MY_COORDINATE_IS_NULL = "$ERROR_PREFIX myCoordinate가 널입니다." } } diff --git a/android/app/src/main/java/com/now/naaga/presentation/rank/RankActivity.kt b/android/app/src/main/java/com/now/naaga/presentation/rank/RankActivity.kt index b0b1ab43d..ad41103b9 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/rank/RankActivity.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/rank/RankActivity.kt @@ -4,18 +4,20 @@ import android.content.Context import android.content.Intent import android.os.Bundle import android.widget.Toast +import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity -import androidx.lifecycle.ViewModelProvider import com.now.domain.model.Rank import com.now.naaga.data.firebase.analytics.AnalyticsDelegate import com.now.naaga.data.firebase.analytics.DefaultAnalyticsDelegate import com.now.naaga.data.firebase.analytics.RANK_RANK import com.now.naaga.databinding.ActivityRankBinding import com.now.naaga.presentation.rank.recyclerview.RankAdapter +import dagger.hilt.android.AndroidEntryPoint +@AndroidEntryPoint class RankActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalyticsDelegate() { private lateinit var binding: ActivityRankBinding - private lateinit var viewModel: RankViewModel + private val viewModel: RankViewModel by viewModels() private val rankAdapter = RankAdapter() @@ -33,7 +35,6 @@ class RankActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalyticsD } private fun initViewModel() { - viewModel = ViewModelProvider(this, RankViewModel.Factory)[RankViewModel::class.java] binding.viewModel = viewModel binding.lifecycleOwner = this } diff --git a/android/app/src/main/java/com/now/naaga/presentation/rank/RankViewModel.kt b/android/app/src/main/java/com/now/naaga/presentation/rank/RankViewModel.kt index 4c739e757..277615c06 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/rank/RankViewModel.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/rank/RankViewModel.kt @@ -3,16 +3,19 @@ package com.now.naaga.presentation.rank import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.viewModelScope import com.now.domain.model.OrderType import com.now.domain.model.Rank import com.now.domain.model.SortType import com.now.domain.repository.RankRepository -import com.now.naaga.data.repository.DefaultRankRepository import com.now.naaga.data.throwable.DataThrowable import com.now.naaga.data.throwable.DataThrowable.PlayerThrowable +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.launch +import javax.inject.Inject -class RankViewModel(private val rankRepository: RankRepository) : ViewModel() { +@HiltViewModel +class RankViewModel @Inject constructor(private val rankRepository: RankRepository) : ViewModel() { private val _myName = MutableLiveData() val myName: LiveData = _myName @@ -29,29 +32,29 @@ class RankViewModel(private val rankRepository: RankRepository) : ViewModel() { val throwable: LiveData = _throwable fun fetchMyRank() { - rankRepository.getMyRank( - callback = { result -> - result - .onSuccess { rank -> - _myName.value = rank.player.nickname - _myScore.value = rank.player.score - _myRank.value = rank.rank - } - .onFailure { setErrorMessage(it as DataThrowable) } - }, - ) + viewModelScope.launch { + runCatching { + rankRepository.getMyRank() + }.onSuccess { rank -> + _myName.value = rank.player.nickname + _myScore.value = rank.player.score + _myRank.value = rank.rank + }.onFailure { + setErrorMessage(it as DataThrowable) + } + } } fun fetchRanks() { - rankRepository.getAllRanks( - SortType.RANK.name, - OrderType.ASCENDING.name, - callback = { result -> - result - .onSuccess { ranks -> _ranks.value = ranks } - .onFailure { setErrorMessage(it as DataThrowable) } - }, - ) + viewModelScope.launch { + runCatching { + rankRepository.getAllRanks(SortType.RANK.name, OrderType.ASCENDING.name) + }.onSuccess { ranks -> + _ranks.value = ranks + }.onFailure { + setErrorMessage(it as DataThrowable) + } + } } private fun setErrorMessage(throwable: DataThrowable) { @@ -60,15 +63,4 @@ class RankViewModel(private val rankRepository: RankRepository) : ViewModel() { else -> {} } } - - companion object { - val Factory = RankFactory(DefaultRankRepository()) - - class RankFactory(private val rankRepository: RankRepository) : - ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - return RankViewModel(rankRepository) as T - } - } - } } diff --git a/android/app/src/main/java/com/now/naaga/presentation/setting/SettingActivity.kt b/android/app/src/main/java/com/now/naaga/presentation/setting/SettingActivity.kt new file mode 100644 index 000000000..e5b4efacb --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/presentation/setting/SettingActivity.kt @@ -0,0 +1,120 @@ +package com.now.naaga.presentation.setting + +import android.content.Context +import android.content.Intent +import android.os.Bundle +import android.widget.Toast +import androidx.activity.viewModels +import androidx.appcompat.app.AppCompatActivity +import com.now.naaga.R +import com.now.naaga.data.throwable.DataThrowable +import com.now.naaga.databinding.ActivitySettingBinding +import com.now.naaga.presentation.common.dialog.NaagaAlertDialog +import com.now.naaga.presentation.login.LoginActivity +import dagger.hilt.android.AndroidEntryPoint + +@AndroidEntryPoint +class SettingActivity : AppCompatActivity() { + private lateinit var binding: ActivitySettingBinding + private val viewModel: SettingViewModel by viewModels() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivitySettingBinding.inflate(layoutInflater) + setContentView(binding.root) + binding.lifecycleOwner = this + subscribe() + setClickListeners() + } + + private fun subscribe() { + viewModel.isLoggedIn.observe(this) { isLoggedIn -> + if (!isLoggedIn) { + shortToast(getString(R.string.setting_logout_message)) + startActivity(LoginActivity.getIntentWithTop(this)) + } + } + viewModel.throwable.observe(this) { error: DataThrowable -> + when (error.code) { + WRONG_AUTH_ERROR_CODE -> shortToast(getString(R.string.setting_wrong_error_message)) + EXPIRATION_AUTH_ERROR_CODE -> shortToast(getString(R.string.setting_expiration_error_message)) + } + } + viewModel.withdrawalStatus.observe(this) { status -> + if (status == true) { + shortToast(getString(R.string.setting_withdrawal_success_message)) + navigateLogin() + } + } + } + + private fun setClickListeners() { + binding.tvSettingLogout.setOnClickListener { + showLogoutDialog() + } + binding.ivSettingBack.setOnClickListener { + finish() + } + binding.tvSettingUnlink.setOnClickListener { + showWithdrawalDialog() + } + binding.tvSettingInquiry.setOnClickListener { + sendEmail() + } + } + + private fun navigateLogin() { + startActivity(LoginActivity.getIntentWithTop(this)) + finish() + } + + private fun shortToast(message: String) { + Toast.makeText(this, message, Toast.LENGTH_SHORT).show() + } + + private fun showWithdrawalDialog() { + NaagaAlertDialog.Builder().build( + title = getString(R.string.withdrawal_dialog_title), + description = getString(R.string.withdrawal_dialog_description), + positiveText = getString(R.string.withdrawal_dialog_negative), + negativeText = getString(R.string.withdrawal_dialog_positive), + positiveAction = { }, + negativeAction = { viewModel.withdrawalMember() }, + ).show(supportFragmentManager, WITHDRAWAL) + } + + private fun showLogoutDialog() { + NaagaAlertDialog.Builder().build( + title = getString(R.string.logout_dialog_title), + description = getString(R.string.logout_dialog_description), + positiveText = getString(R.string.logout_dialog_positive_text), + negativeText = getString(R.string.logout_dialog_negative_text), + positiveAction = { }, + negativeAction = { viewModel.logout() }, + ).show(supportFragmentManager, LOGOUT) + } + + private fun sendEmail() { + val intent = Intent(Intent.ACTION_SEND) + intent.apply { + type = INTENT_TYPE + val emails = arrayOf(getString(R.string.setting_question_email)) + putExtra(Intent.EXTRA_EMAIL, emails) + putExtra(Intent.EXTRA_SUBJECT, getString(R.string.setting_question_email_title)) + startActivity(this) + } + } + + companion object { + private const val LOGOUT = "LOGOUT" + private const val WITHDRAWAL = "WITHDRAWAL" + private const val INTENT_TYPE = "plain/text" + + private const val WRONG_AUTH_ERROR_CODE = 101 + private const val EXPIRATION_AUTH_ERROR_CODE = 102 + + fun getIntent(context: Context): Intent { + return Intent(context, SettingActivity::class.java) + } + } +} diff --git a/android/app/src/main/java/com/now/naaga/presentation/setting/SettingViewModel.kt b/android/app/src/main/java/com/now/naaga/presentation/setting/SettingViewModel.kt new file mode 100644 index 000000000..3da61a6b6 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/presentation/setting/SettingViewModel.kt @@ -0,0 +1,47 @@ +package com.now.naaga.presentation.setting + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.now.domain.repository.AuthRepository +import com.now.naaga.data.throwable.DataThrowable +import com.now.naaga.data.throwable.DataThrowable.AuthorizationThrowable +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.launch +import javax.inject.Inject + +@HiltViewModel +class SettingViewModel @Inject constructor(private val authRepository: AuthRepository) : ViewModel() { + private val _isLoggedIn = MutableLiveData(true) + val isLoggedIn: LiveData = _isLoggedIn + + private val _throwable = MutableLiveData() + val throwable: LiveData = _throwable + + private val _withdrawalStatus = MutableLiveData() + val withdrawalStatus: LiveData = _withdrawalStatus + + fun logout() { + viewModelScope.launch { + runCatching { authRepository.logout() } + .onSuccess { _isLoggedIn.value = false } + .onFailure { setError(it as DataThrowable) } + } + } + + fun withdrawalMember() { + viewModelScope.launch { + runCatching { authRepository.withdrawalMember() } + .onSuccess { _withdrawalStatus.value = true } + .onFailure { setError(it as DataThrowable) } + } + } + + private fun setError(throwable: DataThrowable) { + when (throwable) { + is AuthorizationThrowable -> _throwable.value = throwable + else -> {} + } + } +} diff --git a/android/app/src/main/java/com/now/naaga/presentation/splash/SplashActivity.kt b/android/app/src/main/java/com/now/naaga/presentation/splash/SplashActivity.kt index 0ee04011b..fee2f0d9c 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/splash/SplashActivity.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/splash/SplashActivity.kt @@ -1,36 +1,105 @@ package com.now.naaga.presentation.splash +import android.annotation.SuppressLint +import android.content.Intent +import android.net.Uri import android.os.Bundle +import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity -import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen -import androidx.lifecycle.ViewModelProvider +import com.google.firebase.ktx.Firebase +import com.google.firebase.remoteconfig.ktx.remoteConfig +import com.google.firebase.remoteconfig.ktx.remoteConfigSettings import com.now.naaga.R +import com.now.naaga.data.firebase.analytics.AnalyticsDelegate +import com.now.naaga.data.firebase.analytics.DefaultAnalyticsDelegate +import com.now.naaga.data.firebase.analytics.SPLASH_MY_PAGE_STATISTICS +import com.now.naaga.presentation.beginadventure.BeginAdventureActivity +import com.now.naaga.presentation.common.dialog.NaagaAlertDialog import com.now.naaga.presentation.login.LoginActivity +import com.now.naaga.util.extension.getPackageInfoCompat +import dagger.hilt.android.AndroidEntryPoint + +@SuppressLint("CustomSplashScreen") +@AndroidEntryPoint +class SplashActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalyticsDelegate() { + private val viewModel: SplashViewModel by viewModels() -class SplashActivity : AppCompatActivity() { - private lateinit var viewModel: SplashViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - initViewModel() - viewModel.fetchInProgressAdventure() + registerAnalytics(this.lifecycle) + updateCheck() subscribe() - installSplashScreen() setContentView(R.layout.activity_splash) } - private fun initViewModel() { - viewModel = ViewModelProvider(this, SplashViewModel.Factory)[SplashViewModel::class.java] + private fun updateCheck() { + val remoteConfig = Firebase.remoteConfig + val configSettings = remoteConfigSettings { + minimumFetchIntervalInSeconds = 3600 + } + remoteConfig.setConfigSettingsAsync(configSettings) + remoteConfig.setDefaultsAsync(mapOf(MIN_VERSION to DEFAULT_VERSION)) + val curVersion = packageManager.getPackageInfoCompat(packageName).versionName + + remoteConfig.fetchAndActivate().addOnCompleteListener { + if (it.isSuccessful) { + val minVersion = remoteConfig.getString(MIN_VERSION) + if (minVersion > curVersion) { + showUpdateDialog() + } else { + viewModel.testTokenValid() + } + } + } + } + + private fun showUpdateDialog() { + NaagaAlertDialog.Builder() + .setCancelable(false) + .build( + title = getString(R.string.confirm_dialog_title), + description = getString(R.string.confirm_dialog_description), + positiveText = getString(R.string.confirm_dialog_positive_text), + negativeText = getString(R.string.confirm_dialog_negative_text), + positiveAction = ::navigateToPlayStore, + negativeAction = ::finish, + ).show(supportFragmentManager, TAG_CONFIRM_DIALOG) + } + + private fun navigateToPlayStore() { + val uri = PLAY_STORE_URI + packageName + val intent = Intent(Intent.ACTION_VIEW, Uri.parse(uri)) + startActivity(intent) + finish() } private fun subscribe() { - viewModel.adventureStatus.observe(this) { - startNextActivity() + viewModel.isTokenValid.observe(this) { isTokenValid: Boolean -> + if (isTokenValid) { + startBeginAdventureActivity() + return@observe + } + startLoginActivity() + } + viewModel.error.observe(this) { + logServerError(SPLASH_MY_PAGE_STATISTICS, it.code, it.message.toString()) } } - private fun startNextActivity() { - val intent = LoginActivity.getIntent(this) - startActivity(intent) + private fun startBeginAdventureActivity() { + startActivity(BeginAdventureActivity.getIntent(this)) + finish() + } + + private fun startLoginActivity() { + startActivity(LoginActivity.getIntent(this)) finish() } + + companion object { + const val TAG_CONFIRM_DIALOG = "CONFIRM" + const val MIN_VERSION = "version" + const val PLAY_STORE_URI = "market://details?id=" + const val DEFAULT_VERSION = "0.0.0" + } } diff --git a/android/app/src/main/java/com/now/naaga/presentation/splash/SplashViewModel.kt b/android/app/src/main/java/com/now/naaga/presentation/splash/SplashViewModel.kt index 37d240952..4d57b6570 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/splash/SplashViewModel.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/splash/SplashViewModel.kt @@ -3,42 +3,31 @@ package com.now.naaga.presentation.splash import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider -import com.now.domain.model.Adventure -import com.now.domain.model.AdventureStatus -import com.now.domain.repository.AdventureRepository -import com.now.naaga.data.repository.DefaultAdventureRepository +import androidx.lifecycle.viewModelScope +import com.now.domain.repository.StatisticsRepository +import com.now.naaga.data.throwable.DataThrowable +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.launch +import javax.inject.Inject -class SplashViewModel(private val adventureRepository: AdventureRepository) : ViewModel() { - private val _adventure = MutableLiveData() - val adventure: LiveData = _adventure +@HiltViewModel +class SplashViewModel @Inject constructor(private val statisticsRepository: StatisticsRepository) : ViewModel() { - private val _adventureStatus = MutableLiveData() - val adventureStatus: LiveData = _adventureStatus + private val _isTokenValid = MutableLiveData() + val isTokenValid: LiveData = _isTokenValid - fun fetchInProgressAdventure() { - adventureRepository.fetchAdventureByStatus(AdventureStatus.IN_PROGRESS) { result: Result> -> - result - .onSuccess { fetchAdventure(it) } - .onFailure { _adventureStatus.value = AdventureStatus.NONE } - } - } - - private fun fetchAdventure(adventures: List) { - if (adventures.isNotEmpty()) { - _adventure.value = adventures.first() - _adventureStatus.value = adventures.first().adventureStatus - } else { - _adventureStatus.value = AdventureStatus.NONE - } - } - - companion object { - val Factory = ViewModelFactory(DefaultAdventureRepository()) + private val _error = MutableLiveData() + val error: LiveData = _error - class ViewModelFactory(private val adventureRepository: AdventureRepository) : ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - return SplashViewModel(adventureRepository) as T + fun testTokenValid() { + viewModelScope.launch { + runCatching { + statisticsRepository.getMyStatistics() + }.onSuccess { + _isTokenValid.value = true + }.onFailure { + _isTokenValid.value = false + _error.value = it as DataThrowable.AuthorizationThrowable } } } diff --git a/android/app/src/main/java/com/now/naaga/presentation/uimodel/model/MyPagePlaceUiModel.kt b/android/app/src/main/java/com/now/naaga/presentation/uimodel/model/MyPagePlaceUiModel.kt new file mode 100644 index 000000000..0483c1fdf --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/presentation/uimodel/model/MyPagePlaceUiModel.kt @@ -0,0 +1,6 @@ +package com.now.naaga.presentation.uimodel.model + +data class MyPagePlaceUiModel( + val image: String, + val name: String, +) diff --git a/android/app/src/main/java/com/now/naaga/presentation/uimodel/model/StatisticsUiModel.kt b/android/app/src/main/java/com/now/naaga/presentation/uimodel/model/StatisticsUiModel.kt new file mode 100644 index 000000000..771993aca --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/presentation/uimodel/model/StatisticsUiModel.kt @@ -0,0 +1,43 @@ +package com.now.naaga.presentation.uimodel.model + +import androidx.annotation.DrawableRes +import com.now.naaga.R + +data class StatisticsUiModel( + @DrawableRes val icon: Int, + @DrawableRes val background: Int, + val detail: String, + val count: Int, +) { + companion object { + fun getSuccessAdventureStatisticsModel(count: Int): StatisticsUiModel { + return StatisticsUiModel( + R.drawable.ic_success_adventure, + R.drawable.oval_orange_gradient, + SUCCESS_DETAIL, + count, + ) + } + + fun getFailAdventureStatisticsModel(count: Int): StatisticsUiModel { + return StatisticsUiModel( + R.drawable.ic_fail_adventure, + R.drawable.oval_yellow_gradient, + FAIL_DETAIL, + count, + ) + } + fun getAllAdventureStatisticsModel(count: Int): StatisticsUiModel { + return StatisticsUiModel( + R.drawable.ic_all_adventure, + R.drawable.oval_blue_gradient, + ALL_DETAIL, + count, + ) + } + + private const val SUCCESS_DETAIL = "성공 모험" + private const val FAIL_DETAIL = "실패 모험" + private const val ALL_DETAIL = "전체 모험" + } +} diff --git a/android/app/src/main/java/com/now/naaga/presentation/upload/CameraPermissionDialog.kt b/android/app/src/main/java/com/now/naaga/presentation/upload/CameraPermissionDialog.kt deleted file mode 100644 index 9a8c7ba43..000000000 --- a/android/app/src/main/java/com/now/naaga/presentation/upload/CameraPermissionDialog.kt +++ /dev/null @@ -1,66 +0,0 @@ -package com.now.naaga.presentation.upload - -import android.content.Intent -import android.graphics.Color -import android.graphics.drawable.ColorDrawable -import android.net.Uri -import android.os.Bundle -import android.provider.Settings -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.fragment.app.DialogFragment -import com.now.naaga.data.firebase.analytics.AnalyticsDelegate -import com.now.naaga.data.firebase.analytics.CAMERA_PERMISSION_OPEN_SETTING -import com.now.naaga.data.firebase.analytics.DefaultAnalyticsDelegate -import com.now.naaga.databinding.DialogCameraPermissionBinding -import com.now.naaga.presentation.beginadventure.LocationPermissionDialog -import com.now.naaga.util.dpToPx -import com.now.naaga.util.getWidthProportionalToDevice - -class CameraPermissionDialog : DialogFragment(), AnalyticsDelegate by DefaultAnalyticsDelegate() { - private lateinit var binding: DialogCameraPermissionBinding - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle?, - ): View { - binding = DialogCameraPermissionBinding.inflate(layoutInflater) - dialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) - return binding.root - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - registerAnalytics(this.lifecycle) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - setSize() - binding.btnDialogLocationSetting.setOnClickListener { - logClickEvent(requireContext().getViewEntryName(it), CAMERA_PERMISSION_OPEN_SETTING) - openSetting() - dismiss() - } - } - - private fun setSize() { - val dialogWidth = getWidthProportionalToDevice(requireContext(), LocationPermissionDialog.WIDTH_RATE) - val dialogHeight = dpToPx(requireContext(), LocationPermissionDialog.HEIGHT) - dialog?.window?.setLayout(dialogWidth, dialogHeight) - } - - private fun openSetting() { - val appDetailsIntent = Intent( - Settings.ACTION_APPLICATION_DETAILS_SETTINGS, - Uri.parse("package:${requireContext().packageName}"), - ).addCategory(Intent.CATEGORY_DEFAULT) - startActivity(appDetailsIntent) - } - - companion object { - const val TAG_CAMERA_DIALOG = "CAMERA" - } -} diff --git a/android/app/src/main/java/com/now/naaga/presentation/upload/UploadActivity.kt b/android/app/src/main/java/com/now/naaga/presentation/upload/UploadActivity.kt index 69efd99d1..820949ecc 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/upload/UploadActivity.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/upload/UploadActivity.kt @@ -7,30 +7,34 @@ import android.content.Intent import android.content.pm.PackageManager import android.graphics.Bitmap import android.location.Location -import android.location.LocationManager import android.net.Uri import android.os.Bundle import android.provider.MediaStore import android.view.View import android.widget.Toast import androidx.activity.result.contract.ActivityResultContracts +import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat -import androidx.lifecycle.ViewModelProvider +import com.google.android.gms.location.LocationServices +import com.google.android.gms.tasks.CancellationToken +import com.google.android.gms.tasks.CancellationTokenSource +import com.google.android.gms.tasks.OnTokenCanceledListener import com.now.domain.model.Coordinate +import com.now.naaga.R import com.now.naaga.data.firebase.analytics.AnalyticsDelegate import com.now.naaga.data.firebase.analytics.DefaultAnalyticsDelegate import com.now.naaga.data.firebase.analytics.UPLOAD_OPEN_CAMERA -import com.now.naaga.data.firebase.analytics.UPLOAD_SET_COORDINATE -import com.now.naaga.data.repository.DefaultPlaceRepository +import com.now.naaga.data.throwable.DataThrowable import com.now.naaga.databinding.ActivityUploadBinding -import com.now.naaga.presentation.beginadventure.LocationPermissionDialog -import com.now.naaga.presentation.beginadventure.LocationPermissionDialog.Companion.TAG_LOCATION_DIALOG -import com.now.naaga.presentation.upload.CameraPermissionDialog.Companion.TAG_CAMERA_DIALOG +import com.now.naaga.presentation.common.dialog.DialogType +import com.now.naaga.presentation.common.dialog.PermissionDialog +import dagger.hilt.android.AndroidEntryPoint +@AndroidEntryPoint class UploadActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalyticsDelegate() { private lateinit var binding: ActivityUploadBinding - private lateinit var viewModel: UploadViewModel + private val viewModel: UploadViewModel by viewModels() private val cameraLauncher = registerForActivityResult( ActivityResultContracts.TakePicturePreview(), @@ -48,11 +52,11 @@ class UploadActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytic if (isGranted.not()) { when (entry.key) { Manifest.permission.CAMERA -> { - CameraPermissionDialog().show(supportFragmentManager, TAG_CAMERA_DIALOG) + PermissionDialog(DialogType.CAMERA).show(supportFragmentManager) } Manifest.permission.ACCESS_FINE_LOCATION -> { - LocationPermissionDialog().show(supportFragmentManager, TAG_LOCATION_DIALOG) + PermissionDialog(DialogType.LOCATION).show(supportFragmentManager) } } } @@ -66,6 +70,7 @@ class UploadActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytic setContentView(binding.root) initViewModel() + subscribe() registerAnalytics(this.lifecycle) requestPermission() setCoordinate() @@ -73,12 +78,59 @@ class UploadActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytic } private fun initViewModel() { - val repository = DefaultPlaceRepository() - val factory = UploadFactory(application, repository) - viewModel = ViewModelProvider(this, factory)[UploadViewModel::class.java] binding.lifecycleOwner = this binding.viewModel = viewModel - setClickListeners() + } + + private fun subscribe() { + viewModel.coordinate.observe(this) { + binding.lottieUploadLoading.visibility = View.GONE + } + viewModel.successUpload.observe(this) { uploadStatus -> + when (uploadStatus) { + UploadStatus.SUCCESS -> { + changeVisibility(binding.lottieUploadLoading, View.GONE) + shortToast(getString(R.string.upload_success_submit)) + finish() + } + + UploadStatus.PENDING -> { + changeVisibility(binding.lottieUploadLoading, View.VISIBLE) + } + + UploadStatus.FAIL -> { + changeVisibility(binding.lottieUploadLoading, View.GONE) + shortToast(getString(R.string.upload_fail_submit)) + } + } + } + viewModel.throwable.observe(this) { error: DataThrowable -> + when (error.code) { + UploadViewModel.ERROR_STORE_PHOTO -> { + shortToast(getString(R.string.upload_error_store_photo_message)) + } + + UploadViewModel.ALREADY_EXISTS_NEARBY -> { + shortToast(getString(R.string.upload_error_already_exists_nearby_message)) + } + + UploadViewModel.ERROR_POST_BODY -> { + shortToast(getString(R.string.upload_error_post_message)) + } + } + } + } + + private fun changeVisibility(view: View, status: Int) { + when (status) { + View.VISIBLE -> { + view.visibility = status + } + + View.GONE -> { + view.visibility = status + } + } } private fun requestPermission() { @@ -93,13 +145,23 @@ class UploadActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytic private fun setCoordinate() { if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - val locationManager = getSystemService(LOCATION_SERVICE) as LocationManager - val location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER) + val fusedLocationClient = LocationServices.getFusedLocationProviderClient(this) + fusedLocationClient.getCurrentLocation(PRIORITY_HIGH_ACCURACY, createCancellationToken()) + .addOnSuccessListener { location -> + location.let { viewModel.setCoordinate(getCoordinate(location)) } + } + .addOnFailureListener { } + } + } - if (location != null) { - val coordinate = getCoordinate(location) - binding.tvUploadPhotoCoordinate.text = coordinate.toText() - viewModel.setCoordinate(coordinate) + private fun createCancellationToken(): CancellationToken { + return object : CancellationToken() { + override fun onCanceledRequested(p0: OnTokenCanceledListener): CancellationToken { + return CancellationTokenSource().token + } + + override fun isCancellationRequested(): Boolean { + return false } } } @@ -120,21 +182,16 @@ class UploadActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytic logClickEvent(getViewEntryName(it), UPLOAD_OPEN_CAMERA) checkCameraPermission() } - binding.ivUploadPhoto.setOnClickListener { logClickEvent(getViewEntryName(it), UPLOAD_OPEN_CAMERA) checkCameraPermission() } - binding.ivUploadPhotoCoordinate.setOnClickListener { - logClickEvent(getViewEntryName(it), UPLOAD_SET_COORDINATE) - checkLocationPermission() - } - binding.ivUploadClose.setOnClickListener { + binding.ivUploadBack.setOnClickListener { finish() } binding.btnUploadSubmit.setOnClickListener { if (isFormValid().not()) { - Toast.makeText(this, "모든 정보를 입력해주세요.", Toast.LENGTH_SHORT).show() + shortToast(getString(R.string.upload_error_insufficient_info_message)) } else { viewModel.postPlace() } @@ -143,7 +200,7 @@ class UploadActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytic private fun checkCameraPermission() { if (checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_DENIED) { - CameraPermissionDialog().show(supportFragmentManager, TAG_CAMERA_DIALOG) + PermissionDialog(DialogType.CAMERA).show(supportFragmentManager) } else { openCamera() } @@ -153,18 +210,10 @@ class UploadActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytic cameraLauncher.launch(null) } - private fun checkLocationPermission() { - if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_DENIED) { - LocationPermissionDialog().show(supportFragmentManager, TAG_LOCATION_DIALOG) - } else { - setCoordinate() - } - } - private fun setImage(bitmap: Bitmap) { binding.ivUploadCameraIcon.visibility = View.GONE binding.ivUploadPhoto.setImageBitmap(bitmap) - val uri = getImageUri(bitmap) ?: Uri.EMPTY + val uri = getAbsolutePathFromUri(getImageUri(bitmap) ?: Uri.EMPTY) ?: "" viewModel.setUri(uri) } @@ -181,28 +230,24 @@ class UploadActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytic return null } - private fun isFormValid(): Boolean { - return (isEmptyPhoto() || isEmptyTitle() || isEmptyCoordinate() || isEmptyDescription()).not() - } - - private fun isEmptyPhoto(): Boolean { - return viewModel.hasUri().not() - } - - private fun isEmptyTitle(): Boolean { - return viewModel.title.value == null - } - - private fun isEmptyCoordinate(): Boolean { - return viewModel.hasCoordinate().not() + private fun getAbsolutePathFromUri(uri: Uri): String? { + val projection = arrayOf(MediaStore.Images.Media.DATA) + val cursor = applicationContext.contentResolver.query(uri, projection, null, null, null) + cursor?.use { + val columnIndex = it.getColumnIndexOrThrow(MediaStore.Images.Media.DATA) + if (it.moveToFirst()) { + return it.getString(columnIndex) + } + } + return null } - private fun isEmptyDescription(): Boolean { - return viewModel.description.value == null + private fun shortToast(message: String) { + Toast.makeText(this, message, Toast.LENGTH_SHORT).show() } - private fun Coordinate.toText(): String { - return "$latitude, $longitude" + private fun isFormValid(): Boolean { + return viewModel.isFormValid() } companion object { @@ -217,6 +262,8 @@ class UploadActivity : AppCompatActivity(), AnalyticsDelegate by DefaultAnalytic put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg") } + const val PRIORITY_HIGH_ACCURACY = 100 + fun getIntent(context: Context): Intent { return Intent(context, UploadActivity::class.java) } diff --git a/android/app/src/main/java/com/now/naaga/presentation/upload/UploadFactory.kt b/android/app/src/main/java/com/now/naaga/presentation/upload/UploadFactory.kt deleted file mode 100644 index c322500e5..000000000 --- a/android/app/src/main/java/com/now/naaga/presentation/upload/UploadFactory.kt +++ /dev/null @@ -1,19 +0,0 @@ -package com.now.naaga.presentation.upload - -import android.app.Application -import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider -import com.now.domain.repository.PlaceRepository - -class UploadFactory( - private val application: Application, - private val placeRepository: PlaceRepository, -) : ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - if (modelClass.isAssignableFrom(UploadViewModel::class.java)) { - return UploadViewModel(application, placeRepository) as T - } else { - throw java.lang.IllegalArgumentException() - } - } -} diff --git a/android/app/src/main/java/com/now/naaga/presentation/upload/UploadStatus.kt b/android/app/src/main/java/com/now/naaga/presentation/upload/UploadStatus.kt new file mode 100644 index 000000000..34f98afd9 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/presentation/upload/UploadStatus.kt @@ -0,0 +1,5 @@ +package com.now.naaga.presentation.upload + +enum class UploadStatus { + SUCCESS, PENDING, FAIL +} diff --git a/android/app/src/main/java/com/now/naaga/presentation/upload/UploadViewModel.kt b/android/app/src/main/java/com/now/naaga/presentation/upload/UploadViewModel.kt index ae6e63ed6..5f7a460ac 100644 --- a/android/app/src/main/java/com/now/naaga/presentation/upload/UploadViewModel.kt +++ b/android/app/src/main/java/com/now/naaga/presentation/upload/UploadViewModel.kt @@ -1,81 +1,83 @@ package com.now.naaga.presentation.upload -import android.app.Application -import android.content.Context -import android.net.Uri -import android.provider.MediaStore -import android.text.Editable import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope import com.now.domain.model.Coordinate -import com.now.domain.model.Place import com.now.domain.repository.PlaceRepository +import com.now.naaga.data.throwable.DataThrowable +import com.now.naaga.data.throwable.DataThrowable.PlaceThrowable +import com.now.naaga.data.throwable.DataThrowable.UniversalThrowable +import com.now.naaga.util.MutableSingleLiveData +import com.now.naaga.util.SingleLiveData +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.launch +import javax.inject.Inject -class UploadViewModel( - private val application: Application, +@HiltViewModel +class UploadViewModel @Inject constructor( private val placeRepository: PlaceRepository, ) : ViewModel() { - private var imageUri: Uri = Uri.EMPTY - private var coordinate = DEFAULT_COORDINATE + private var imageUri: String = URI_EMPTY - private val _name = MutableLiveData() - val title: LiveData = _name + val name = MutableLiveData() - private val _description = MutableLiveData() - val description: LiveData = _description + private val _successUpload = MutableSingleLiveData() + val successUpload: SingleLiveData = _successUpload - fun setTitle(editTitle: Editable) { - _name.value = editTitle.toString() - } + private val _throwable = MutableLiveData() + val throwable: LiveData = _throwable - fun setDescription(editTitle: Editable) { - _description.value = editTitle.toString() - } + private val _coordinate = MutableLiveData() + val coordinate: LiveData = _coordinate - fun setUri(uri: Uri) { + fun setUri(uri: String) { imageUri = uri } fun setCoordinate(coordinate: Coordinate) { - this.coordinate = coordinate - } - - fun hasUri(): Boolean { - return imageUri != Uri.EMPTY + _coordinate.value = coordinate } - fun hasCoordinate(): Boolean { - return coordinate != DEFAULT_COORDINATE + fun isFormValid(): Boolean { + return (imageUri != URI_EMPTY) && (_coordinate.value != null) && (name.value != null) } fun postPlace() { - placeRepository.postPlace( - name = _name.value.toString(), - description = _description.value.toString(), - coordinate = coordinate, - image = getAbsolutePathFromUri(application.applicationContext, imageUri) ?: "", - callback = { result: Result -> - result - .onSuccess { } - .onFailure { } - }, - ) + _coordinate.value?.let { coordinate -> + _successUpload.setValue(UploadStatus.PENDING) + viewModelScope.launch { + runCatching { + placeRepository.postPlace( + name = name.value.toString(), + description = "", + coordinate = coordinate, + image = imageUri, + ) + }.onSuccess { + _successUpload.setValue(UploadStatus.SUCCESS) + }.onFailure { + _successUpload.setValue(UploadStatus.FAIL) + setError(it as DataThrowable) + } + } + } } - private fun getAbsolutePathFromUri(context: Context, uri: Uri): String? { - val projection = arrayOf(MediaStore.Images.Media.DATA) - val cursor = context.contentResolver.query(uri, projection, null, null, null) - cursor?.use { - val columnIndex = it.getColumnIndexOrThrow(MediaStore.Images.Media.DATA) - if (it.moveToFirst()) { - return it.getString(columnIndex) - } + private fun setError(throwable: DataThrowable) { + when (throwable) { + is UniversalThrowable -> _throwable.value = throwable + is PlaceThrowable -> _throwable.value = throwable + else -> {} } - return null } companion object { - val DEFAULT_COORDINATE = Coordinate(-1.0, -1.0) + const val URI_EMPTY = "EMPTY" + + const val ALREADY_EXISTS_NEARBY = 505 + const val ERROR_STORE_PHOTO = 215 + const val ERROR_POST_BODY = 205 } } diff --git a/android/app/src/main/java/com/now/naaga/util/Event.kt b/android/app/src/main/java/com/now/naaga/util/Event.kt new file mode 100644 index 000000000..66459f691 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/util/Event.kt @@ -0,0 +1,27 @@ +package com.now.naaga.util + +/** + * Used as a wrapper for data that is exposed via a LiveData that represents an event. + */ +open class Event(private val content: T) { + + var hasBeenHandled = false + private set // Allow external read but not write + + /** + * Returns the content and prevents its use again. + */ + fun getContentIfNotHandled(): T? { + return if (hasBeenHandled) { + null + } else { + hasBeenHandled = true + content + } + } + + /** + * Returns the content, even if it's already been handled. + */ + fun peekContent(): T = content +} diff --git a/android/app/src/main/java/com/now/naaga/util/KakaoLoginUtil.kt b/android/app/src/main/java/com/now/naaga/util/KakaoLoginUtil.kt index 20e78b956..e98de10fe 100644 --- a/android/app/src/main/java/com/now/naaga/util/KakaoLoginUtil.kt +++ b/android/app/src/main/java/com/now/naaga/util/KakaoLoginUtil.kt @@ -7,9 +7,11 @@ import com.kakao.sdk.common.model.ClientError import com.kakao.sdk.common.model.ClientErrorCause import com.kakao.sdk.user.UserApiClient -private const val KAKAO_LOGIN_LOG_TAG = "kakao login" +const val KAKAO_LOGIN_LOG_TAG = "kakao login" private const val KAKAO_LOGIN_FAIL_MESSAGE = "카카오계정으로 로그인 실패" private const val KAKAO_LOGIN_SUCCESS_MESSAGE = "카카오계정으로 로그인 성공" +private const val KAKAO_UNLINK_FAIL_MESSAGE = "연결 끊기 실패" +private const val KAKAO_UNLINK_SUCCESS_MESSAGE = "연결 끊기 성공. SDK에서 토큰 삭제 됨" private fun getLoginCallback(doNextAction: (token: String) -> Unit): (OAuthToken?, Throwable?) -> Unit { val callback: (OAuthToken?, Throwable?) -> Unit = { token, error -> @@ -50,3 +52,13 @@ fun loginWithKakao(context: Context, doNextAction: (token: String) -> Unit) { UserApiClient.instance.loginWithKakaoAccount(context, callback = callback) } } + +fun unlinkWithKakao() { + UserApiClient.instance.unlink { error -> + if (error != null) { + Log.e(KAKAO_LOGIN_LOG_TAG, KAKAO_UNLINK_FAIL_MESSAGE, error) + } else { + Log.i(KAKAO_LOGIN_LOG_TAG, KAKAO_UNLINK_SUCCESS_MESSAGE) + } + } +} diff --git a/android/app/src/main/java/com/now/naaga/util/MutableSingleLiveData.kt b/android/app/src/main/java/com/now/naaga/util/MutableSingleLiveData.kt new file mode 100644 index 000000000..bb31a719d --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/util/MutableSingleLiveData.kt @@ -0,0 +1,16 @@ +package com.now.naaga.util + +class MutableSingleLiveData : SingleLiveData { + + constructor() : super() + + constructor(value: T) : super(value) + + public override fun postValue(value: T) { + super.postValue(value) + } + + public override fun setValue(value: T) { + super.setValue(value) + } +} diff --git a/android/app/src/main/java/com/now/naaga/util/ResponseUtil.kt b/android/app/src/main/java/com/now/naaga/util/ResponseUtil.kt new file mode 100644 index 000000000..2d71bb421 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/util/ResponseUtil.kt @@ -0,0 +1,45 @@ +package com.now.naaga.util + +import com.now.naaga.data.throwable.DataThrowable +import org.json.JSONObject +import retrofit2.Response + +private fun Response.codeIn400s(): Boolean { + return this.code() in 400..499 +} + +private fun Response.codeIn500s(): Boolean { + return this.code() in 500..599 +} + +private fun Response.isDelete(): Boolean { + return this.raw().request.method == "DELETE" +} + +@Suppress("UNCHECKED_CAST") +fun Response.getValueOrThrow(): T { + if (this.isSuccessful) { + if (this.isDelete()) { return Unit as T } + return this.body() ?: throw DataThrowable.IllegalStateThrowable() + } + + if (codeIn500s()) { + throw DataThrowable.IllegalStateThrowable() + } + + if (codeIn400s()) { + val errorResponse = errorBody()?.string() + val jsonObject = errorResponse?.let { JSONObject(it) } + val code = jsonObject?.getInt("code") ?: 0 + val message = jsonObject?.getString("message") ?: "" + + when (code) { + in 100..199 -> { throw DataThrowable.AuthorizationThrowable(code, message) } + in 200..299 -> { throw DataThrowable.UniversalThrowable(code, message) } + in 300..399 -> { throw DataThrowable.PlayerThrowable(code, message) } + in 400..499 -> { throw DataThrowable.GameThrowable(code, message) } + in 500..599 -> { throw DataThrowable.PlaceThrowable(code, message) } + } + } + throw DataThrowable.IllegalStateThrowable() +} diff --git a/android/app/src/main/java/com/now/naaga/util/SingleLiveData.kt b/android/app/src/main/java/com/now/naaga/util/SingleLiveData.kt new file mode 100644 index 000000000..30fb3b8a5 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/util/SingleLiveData.kt @@ -0,0 +1,33 @@ +package com.now.naaga.util + +import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.MutableLiveData + +abstract class SingleLiveData { + + private val liveData = MutableLiveData>() + + protected constructor() + + protected constructor(value: T) { + liveData.value = Event(value) + } + + protected open fun setValue(value: T) { + liveData.value = Event(value) + } + + protected open fun postValue(value: T) { + liveData.postValue(Event(value)) + } + + fun getValue() = liveData.value?.peekContent() + + fun observe(owner: LifecycleOwner, onResult: (T) -> Unit) { + liveData.observe(owner) { it.getContentIfNotHandled()?.let(onResult) } + } + + fun observePeek(owner: LifecycleOwner, onResult: (T) -> Unit) { + liveData.observe(owner) { onResult(it.peekContent()) } + } +} diff --git a/android/app/src/main/java/com/now/naaga/util/IntentExt.kt b/android/app/src/main/java/com/now/naaga/util/extension/IntentExt.kt similarity index 88% rename from android/app/src/main/java/com/now/naaga/util/IntentExt.kt rename to android/app/src/main/java/com/now/naaga/util/extension/IntentExt.kt index 31ebe4025..3da311f84 100644 --- a/android/app/src/main/java/com/now/naaga/util/IntentExt.kt +++ b/android/app/src/main/java/com/now/naaga/util/extension/IntentExt.kt @@ -1,4 +1,4 @@ -package com.now.naaga.util +package com.now.naaga.util.extension import android.content.Intent import android.os.Build diff --git a/android/app/src/main/java/com/now/naaga/util/extension/PackageManagerExt.kt b/android/app/src/main/java/com/now/naaga/util/extension/PackageManagerExt.kt new file mode 100644 index 000000000..6137b8bd8 --- /dev/null +++ b/android/app/src/main/java/com/now/naaga/util/extension/PackageManagerExt.kt @@ -0,0 +1,14 @@ +package com.now.naaga.util.extension + +import android.content.pm.PackageInfo +import android.content.pm.PackageManager +import android.os.Build + +fun PackageManager.getPackageInfoCompat(packageName: String, flags: Int = 0): PackageInfo { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + getPackageInfo(packageName, PackageManager.PackageInfoFlags.of(flags.toLong())) + } else { + @Suppress("DEPRECATION") + getPackageInfo(packageName, flags) + } +} diff --git a/android/app/src/main/naaga_icon-playstore.png b/android/app/src/main/naaga_icon-playstore.png index 0447b638951b73e42cfe87e0665834cddf9f8f93..8af0b09a5913a70ded6585a77bb15fffa4667a21 100644 GIT binary patch literal 44734 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%0A7&^ywMc=j?GrlRx4dnX#*>RX{qJ}OkR1ex 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 WTV2lF5YtKkbh&Qd#VdCbi2ngo7e#CU diff --git a/android/app/src/main/res/drawable/bg_blue_button.xml b/android/app/src/main/res/drawable/bg_blue_button.xml new file mode 100644 index 000000000..5b0c8246b --- /dev/null +++ b/android/app/src/main/res/drawable/bg_blue_button.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/bg_blue_gradient.xml b/android/app/src/main/res/drawable/bg_blue_gradient.xml new file mode 100644 index 000000000..faa6e80d8 --- /dev/null +++ b/android/app/src/main/res/drawable/bg_blue_gradient.xml @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/bg_yellow_button.xml b/android/app/src/main/res/drawable/bg_yellow_button.xml new file mode 100644 index 000000000..8b17b9fa9 --- /dev/null +++ b/android/app/src/main/res/drawable/bg_yellow_button.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/bg_yellow_button_thick.xml b/android/app/src/main/res/drawable/bg_yellow_button_thick.xml new file mode 100644 index 000000000..1c2fc7b43 --- /dev/null +++ b/android/app/src/main/res/drawable/bg_yellow_button_thick.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/ic_all_adventure.xml b/android/app/src/main/res/drawable/ic_all_adventure.xml new file mode 100644 index 000000000..5566dd1a9 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_all_adventure.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/ic_building.xml b/android/app/src/main/res/drawable/ic_building.xml new file mode 100644 index 000000000..d8ded2560 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_building.xml @@ -0,0 +1,11 @@ + + + diff --git a/android/app/src/main/res/drawable/ic_building_full.xml b/android/app/src/main/res/drawable/ic_building_full.xml new file mode 100644 index 000000000..976e5adda --- /dev/null +++ b/android/app/src/main/res/drawable/ic_building_full.xml @@ -0,0 +1,10 @@ + + + diff --git a/android/app/src/main/res/drawable/ic_camera_dialog.xml b/android/app/src/main/res/drawable/ic_camera_dialog.xml index 1898378a7..3a97119e5 100644 --- a/android/app/src/main/res/drawable/ic_camera_dialog.xml +++ b/android/app/src/main/res/drawable/ic_camera_dialog.xml @@ -8,14 +8,14 @@ android:fillColor="#E3C6ED"/> + android:fillColor="#FACB10"/> + android:fillColor="#F2B70C"/> + android:fillColor="#F2B70C"/> diff --git a/android/app/src/main/res/drawable/ic_compass.xml b/android/app/src/main/res/drawable/ic_compass.xml new file mode 100644 index 000000000..f14824ac7 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_compass.xml @@ -0,0 +1,9 @@ + + + diff --git a/android/app/src/main/res/drawable/ic_drop.xml b/android/app/src/main/res/drawable/ic_drop.xml deleted file mode 100644 index ef96c1ffb..000000000 --- a/android/app/src/main/res/drawable/ic_drop.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/android/app/src/main/res/drawable/ic_fail_adventure.xml b/android/app/src/main/res/drawable/ic_fail_adventure.xml new file mode 100644 index 000000000..054e4be54 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_fail_adventure.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/android/app/src/main/res/drawable/ic_fail.xml b/android/app/src/main/res/drawable/ic_fail_label.xml similarity index 100% rename from android/app/src/main/res/drawable/ic_fail.xml rename to android/app/src/main/res/drawable/ic_fail_label.xml diff --git a/android/app/src/main/res/drawable/ic_flag.xml b/android/app/src/main/res/drawable/ic_flag.xml new file mode 100644 index 000000000..88383d664 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_flag.xml @@ -0,0 +1,10 @@ + + + diff --git a/android/app/src/main/res/drawable/ic_hint.xml b/android/app/src/main/res/drawable/ic_hint.xml deleted file mode 100644 index 481db8bee..000000000 --- a/android/app/src/main/res/drawable/ic_hint.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - diff --git a/android/app/src/main/res/drawable/ic_launcher_foreground.xml b/android/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 000000000..356597e10 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,728 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/ic_location_dialog.xml b/android/app/src/main/res/drawable/ic_location_dialog.xml index b56ea58ea..ac4979756 100644 --- a/android/app/src/main/res/drawable/ic_location_dialog.xml +++ b/android/app/src/main/res/drawable/ic_location_dialog.xml @@ -1,15 +1,18 @@ - - - + android:width="144dp" + android:height="144dp" + android:viewportWidth="144" + android:viewportHeight="144"> + + + + diff --git a/android/app/src/main/res/drawable/ic_logo_purple.xml b/android/app/src/main/res/drawable/ic_logo_purple.xml deleted file mode 100644 index a7e2a6f47..000000000 --- a/android/app/src/main/res/drawable/ic_logo_purple.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - diff --git a/android/app/src/main/res/drawable/ic_marker_east.xml b/android/app/src/main/res/drawable/ic_marker_east.xml index 06cbf22fb..7dc51c1cb 100644 --- a/android/app/src/main/res/drawable/ic_marker_east.xml +++ b/android/app/src/main/res/drawable/ic_marker_east.xml @@ -1,27 +1,18 @@ + android:width="122dp" + android:height="85dp" + android:viewportWidth="122" + android:viewportHeight="85"> - - - - - - - + android:pathData="M16.15,0L105.3,0A16.15,16.15 0,0 1,121.45 16.15L121.45,16.15A16.15,16.15 0,0 1,105.3 32.3L16.15,32.3A16.15,16.15 0,0 1,0 16.15L0,16.15A16.15,16.15 0,0 1,16.15 0z" + android:fillColor="#0B0726"/> + android:pathData="M25.15,15.87H35.2V17.14H25.15V15.87ZM29.38,14.2H30.97V16.36H29.38V14.2ZM26.36,13.69H34.06V14.95H26.36V13.69ZM26.36,11.13H34V12.37H27.94V14.5H26.36V11.13ZM30.14,17.69C32.54,17.69 33.99,18.42 33.99,19.73C33.99,21.04 32.54,21.77 30.14,21.77C27.74,21.77 26.27,21.04 26.27,19.73C26.27,18.42 27.74,17.69 30.14,17.69ZM30.14,18.89C28.65,18.89 27.89,19.17 27.89,19.73C27.89,20.31 28.65,20.56 30.14,20.56C31.63,20.56 32.38,20.31 32.38,19.73C32.38,19.17 31.63,18.89 30.14,18.89ZM38.28,11.7H39.46V12.29C39.46,13.57 38.72,14.8 37.01,15.22L36.36,14.05C37.66,13.75 38.28,12.99 38.28,12.29V11.7ZM38.75,11.7H39.87V12.27C39.87,12.9 40.48,13.62 41.66,13.91L41.19,15.07C39.45,14.67 38.75,13.43 38.75,12.27V11.7ZM42.51,11.7H43.62V12.27C43.62,13.44 42.93,14.68 41.19,15.07L40.72,13.91C41.9,13.62 42.51,12.91 42.51,12.27V11.7ZM42.94,11.7H44.12V12.29C44.12,13.02 44.73,13.77 46.04,14.05L45.38,15.22C43.68,14.8 42.94,13.61 42.94,12.29V11.7ZM36.84,11.03H40.97V12.29H36.84V11.03ZM41.42,11.03H45.53V12.29H41.42V11.03ZM36.17,15.97H46.23V17.23H36.17V15.97ZM40.4,15.07H41.99V16.97H40.4V15.07ZM37.26,18.12H45.02V21.76H43.42V19.38H37.26V18.12ZM51.65,14.74H53.48V16.02H51.65V14.74ZM55.24,10.65H56.76V21.76H55.24V10.65ZM52.97,10.81H54.47V21.25H52.97V10.81ZM49.71,11.43C51.18,11.43 52.13,12.95 52.13,15.46C52.13,17.98 51.18,19.5 49.71,19.5C48.24,19.5 47.31,17.98 47.31,15.46C47.31,12.95 48.24,11.43 49.71,11.43ZM49.71,12.93C49.11,12.93 48.76,13.77 48.76,15.46C48.76,17.16 49.11,17.99 49.71,17.99C50.33,17.99 50.68,17.16 50.68,15.46C50.68,13.77 50.33,12.93 49.71,12.93ZM63.15,17.39H64.35V17.76C64.35,19.44 63.6,20.98 61.86,21.6L61.08,20.44C62.54,19.95 63.15,18.84 63.15,17.76V17.39ZM63.56,17.39H64.7V17.76C64.7,18.84 65.24,19.97 66.59,20.53L65.96,21.71C64.19,21.05 63.56,19.39 63.56,17.76V17.39ZM67.2,17.39H68.34V17.76C68.34,19.3 67.68,21.03 65.96,21.71L65.3,20.53C66.65,19.92 67.2,18.75 67.2,17.76V17.39ZM67.58,17.39H68.78V17.76C68.78,18.91 69.38,19.98 70.84,20.44L70.06,21.6C68.3,21 67.58,19.51 67.58,17.76V17.39ZM68.28,10.66H69.89V16.93H68.28V10.66ZM63.84,11.22C65.57,11.22 66.86,12.33 66.86,13.89C66.86,15.43 65.57,16.54 63.84,16.54C62.12,16.54 60.82,15.43 60.82,13.89C60.82,12.33 62.12,11.22 63.84,11.22ZM63.84,12.54C63,12.54 62.38,13.03 62.38,13.89C62.38,14.73 63,15.22 63.84,15.22C64.68,15.22 65.3,14.73 65.3,13.89C65.3,13.03 64.68,12.54 63.84,12.54ZM74.74,11.41C76.4,11.41 77.61,12.95 77.61,15.37C77.61,17.82 76.4,19.36 74.74,19.36C73.07,19.36 71.87,17.82 71.87,15.37C71.87,12.95 73.07,11.41 74.74,11.41ZM74.74,12.87C73.94,12.87 73.4,13.74 73.4,15.37C73.4,17.03 73.94,17.92 74.74,17.92C75.56,17.92 76.08,17.03 76.08,15.37C76.08,13.74 75.56,12.87 74.74,12.87ZM79.43,10.63H81.02V21.78H79.43V10.63ZM77.14,14.64H80.1V15.93H77.14V14.64ZM84.95,16.29H86.53V19.41H84.95V16.29ZM88.98,16.29H90.58V19.41H88.98V16.29ZM82.74,19.18H92.8V20.47H82.74V19.18ZM87.76,11.19C90.15,11.19 91.91,12.36 91.91,14.17C91.91,15.99 90.15,17.15 87.76,17.15C85.36,17.15 83.61,15.99 83.61,14.17C83.61,12.36 85.36,11.19 87.76,11.19ZM87.76,12.43C86.21,12.43 85.18,13.07 85.18,14.17C85.18,15.27 86.21,15.91 87.76,15.91C89.31,15.91 90.34,15.27 90.34,14.17C90.34,13.07 89.31,12.43 87.76,12.43ZM94.59,18.42L94.19,12.46H95.89L95.5,18.42H94.59ZM94.29,20.69V19.15H95.81V20.69H94.29Z" + android:fillColor="#ffffff"/> + android:pathData="M59.38,56.92L59.06,52.04C59.03,51.68 59.07,51.31 59.16,50.96L59.22,50.72C59.4,50.05 59.82,49.48 60.4,49.12C60.64,48.97 60.9,48.86 61.17,48.79L62.1,48.56C62.39,48.49 62.67,48.38 62.94,48.25L63.39,48.03C64.02,47.72 64.52,47.2 64.8,46.56C64.99,46.12 65.07,45.65 65.04,45.17L65,44.54C64.96,43.95 64.73,43.38 64.35,42.91C63.92,42.39 63.33,42.03 62.67,41.9L62.46,41.85C62.01,41.76 61.54,41.76 61.09,41.85L60.94,41.88C60.13,42.05 59.43,42.51 58.96,43.17C58.63,43.64 58.43,44.19 58.38,44.76L58.3,45.81C58.27,46.12 58.19,46.42 58.05,46.7C57.73,47.33 57.15,47.8 56.45,47.97L56.3,48.01C55.89,48.11 55.46,48.12 55.04,48.03L54.66,47.95C54.3,47.88 53.95,47.73 53.63,47.52C52.97,47.09 52.51,46.41 52.34,45.64L52.29,45.4C52.23,45.08 52.2,44.75 52.23,44.43L52.34,42.96L52.41,42.62C52.6,41.71 52.94,40.84 53.42,40.05C53.74,39.5 54.14,39 54.58,38.54L54.76,38.36C55.19,37.92 55.65,37.53 56.15,37.18L56.17,37.17C56.81,36.72 57.51,36.35 58.24,36.07C58.92,35.81 59.63,35.63 60.35,35.52L60.56,35.49C61.17,35.4 61.79,35.38 62.41,35.43L62.46,35.43C63.21,35.48 63.94,35.63 64.64,35.88C65.19,36.07 65.71,36.32 66.2,36.61L66.65,36.88C67.2,37.21 67.71,37.59 68.19,38.02C68.7,38.48 69.17,39 69.58,39.56L69.63,39.63C69.98,40.1 70.28,40.61 70.52,41.13C70.94,42.02 71.22,42.97 71.33,43.94L71.35,44.04C71.43,44.77 71.44,45.5 71.36,46.23L71.33,46.47C71.25,47.18 71.09,47.88 70.86,48.54C70.57,49.36 70.17,50.15 69.67,50.85C69.29,51.38 68.86,51.87 68.38,52.31L68.22,52.45C67.74,52.89 67.22,53.29 66.66,53.63L65.71,54.23C65.51,54.36 65.4,54.58 65.41,54.82L65.53,56.65C65.57,57.12 65.51,57.58 65.36,58.02L65.3,58.21C65.16,58.62 64.93,59 64.61,59.3C64.27,59.63 63.85,59.86 63.39,59.97L63.18,60.03C62.77,60.13 62.33,60.14 61.91,60.05L61.89,60.05C61.43,59.96 61.01,59.76 60.64,59.48C60.28,59.19 59.98,58.82 59.79,58.39L59.71,58.22C59.52,57.81 59.41,57.37 59.38,56.92Z" + android:fillColor="#0B0726"/> + diff --git a/android/app/src/main/res/drawable/ic_marker_north.xml b/android/app/src/main/res/drawable/ic_marker_north.xml index deb9205a4..3382c191b 100644 --- a/android/app/src/main/res/drawable/ic_marker_north.xml +++ b/android/app/src/main/res/drawable/ic_marker_north.xml @@ -1,27 +1,18 @@ + android:width="122dp" + android:height="85dp" + android:viewportWidth="122" + android:viewportHeight="85"> - - - - - - - + android:pathData="M16.15,0.16L105.3,0.16A16.15,16.15 0,0 1,121.45 16.31L121.45,16.31A16.15,16.15 0,0 1,105.3 32.46L16.15,32.46A16.15,16.15 0,0 1,0 16.31L0,16.31A16.15,16.15 0,0 1,16.15 0.16z" + android:fillColor="#0B0726"/> + android:pathData="M29.35,17.06H30.93V18.74H29.35V17.06ZM25.13,16.1H35.18V17.36H25.13V16.1ZM26.25,18.29H33.97V21.92H32.37V19.55H26.25V18.29ZM26.42,11.08H27.99V12.07H32.32V11.08H33.91V15.38H26.42V11.08ZM27.99,13.25V14.13H32.32V13.25H27.99ZM38.28,11.86H39.46V12.45C39.46,13.73 38.72,14.96 37.01,15.38L36.36,14.21C37.66,13.91 38.28,13.15 38.28,12.45V11.86ZM38.75,11.86H39.87V12.43C39.87,13.06 40.48,13.78 41.66,14.07L41.19,15.23C39.45,14.83 38.75,13.59 38.75,12.43V11.86ZM42.51,11.86H43.62V12.43C43.62,13.6 42.93,14.84 41.19,15.23L40.72,14.07C41.9,13.78 42.51,13.07 42.51,12.43V11.86ZM42.94,11.86H44.12V12.45C44.12,13.18 44.73,13.93 46.04,14.21L45.38,15.38C43.68,14.96 42.94,13.77 42.94,12.45V11.86ZM36.84,11.19H40.97V12.45H36.84V11.19ZM41.42,11.19H45.53V12.45H41.42V11.19ZM36.17,16.13H46.23V17.39H36.17V16.13ZM40.4,15.23H41.99V17.13H40.4V15.23ZM37.26,18.28H45.02V21.92H43.42V19.54H37.26V18.28ZM51.65,14.9H53.48V16.18H51.65V14.9ZM55.24,10.81H56.76V21.92H55.24V10.81ZM52.97,10.97H54.47V21.41H52.97V10.97ZM49.71,11.59C51.18,11.59 52.13,13.11 52.13,15.62C52.13,18.14 51.18,19.66 49.71,19.66C48.24,19.66 47.31,18.14 47.31,15.62C47.31,13.11 48.24,11.59 49.71,11.59ZM49.71,13.09C49.11,13.09 48.76,13.93 48.76,15.62C48.76,17.32 49.11,18.15 49.71,18.15C50.33,18.15 50.68,17.32 50.68,15.62C50.68,13.93 50.33,13.09 49.71,13.09ZM63.15,17.55H64.35V17.92C64.35,19.6 63.6,21.14 61.86,21.76L61.08,20.6C62.54,20.11 63.15,19 63.15,17.92V17.55ZM63.56,17.55H64.7V17.92C64.7,19 65.24,20.13 66.59,20.69L65.96,21.87C64.19,21.21 63.56,19.55 63.56,17.92V17.55ZM67.2,17.55H68.34V17.92C68.34,19.46 67.68,21.19 65.96,21.87L65.3,20.69C66.65,20.08 67.2,18.91 67.2,17.92V17.55ZM67.58,17.55H68.78V17.92C68.78,19.07 69.38,20.14 70.84,20.6L70.06,21.76C68.3,21.16 67.58,19.67 67.58,17.92V17.55ZM68.28,10.82H69.89V17.09H68.28V10.82ZM63.84,11.38C65.57,11.38 66.86,12.49 66.86,14.05C66.86,15.59 65.57,16.7 63.84,16.7C62.12,16.7 60.82,15.59 60.82,14.05C60.82,12.49 62.12,11.38 63.84,11.38ZM63.84,12.7C63,12.7 62.38,13.19 62.38,14.05C62.38,14.89 63,15.38 63.84,15.38C64.68,15.38 65.3,14.89 65.3,14.05C65.3,13.19 64.68,12.7 63.84,12.7ZM74.74,11.57C76.4,11.57 77.61,13.11 77.61,15.53C77.61,17.98 76.4,19.52 74.74,19.52C73.07,19.52 71.87,17.98 71.87,15.53C71.87,13.11 73.07,11.57 74.74,11.57ZM74.74,13.03C73.94,13.03 73.4,13.9 73.4,15.53C73.4,17.19 73.94,18.08 74.74,18.08C75.56,18.08 76.08,17.19 76.08,15.53C76.08,13.9 75.56,13.03 74.74,13.03ZM79.43,10.79H81.02V21.94H79.43V10.79ZM77.14,14.8H80.1V16.09H77.14V14.8ZM84.95,16.45H86.53V19.57H84.95V16.45ZM88.98,16.45H90.58V19.57H88.98V16.45ZM82.74,19.34H92.8V20.63H82.74V19.34ZM87.76,11.35C90.15,11.35 91.91,12.52 91.91,14.33C91.91,16.15 90.15,17.31 87.76,17.31C85.36,17.31 83.61,16.15 83.61,14.33C83.61,12.52 85.36,11.35 87.76,11.35ZM87.76,12.59C86.21,12.59 85.18,13.23 85.18,14.33C85.18,15.43 86.21,16.07 87.76,16.07C89.31,16.07 90.34,15.43 90.34,14.33C90.34,13.23 89.31,12.59 87.76,12.59ZM94.59,18.58L94.19,12.62H95.89L95.5,18.58H94.59ZM94.29,20.85V19.31H95.81V20.85H94.29Z" + android:fillColor="#ffffff"/> + android:pathData="M59.38,57.08L59.06,52.2C59.03,51.84 59.07,51.47 59.16,51.12L59.22,50.88C59.4,50.21 59.82,49.64 60.4,49.28C60.64,49.13 60.9,49.02 61.17,48.95L62.1,48.72C62.39,48.65 62.67,48.54 62.94,48.41L63.39,48.19C64.02,47.88 64.52,47.36 64.8,46.72C64.99,46.28 65.07,45.81 65.04,45.33L65,44.7C64.96,44.11 64.73,43.54 64.35,43.07C63.92,42.55 63.33,42.19 62.67,42.06L62.46,42.01C62.01,41.92 61.54,41.92 61.09,42.01L60.94,42.04C60.13,42.21 59.43,42.67 58.96,43.33C58.63,43.8 58.43,44.35 58.38,44.92L58.3,45.97C58.27,46.28 58.19,46.58 58.05,46.86C57.73,47.5 57.15,47.96 56.45,48.13L56.3,48.17C55.89,48.27 55.46,48.28 55.04,48.19L54.66,48.11C54.3,48.04 53.95,47.89 53.63,47.68C52.97,47.25 52.51,46.57 52.34,45.8L52.29,45.56C52.23,45.24 52.2,44.91 52.23,44.59L52.34,43.12L52.41,42.78C52.6,41.87 52.94,41 53.42,40.21C53.74,39.66 54.14,39.16 54.58,38.7L54.76,38.52C55.19,38.08 55.65,37.69 56.15,37.34L56.17,37.33C56.81,36.88 57.51,36.51 58.24,36.23C58.92,35.97 59.63,35.79 60.35,35.68L60.56,35.65C61.17,35.56 61.79,35.54 62.41,35.59L62.46,35.59C63.21,35.64 63.94,35.79 64.64,36.04C65.19,36.23 65.71,36.48 66.2,36.77L66.65,37.04C67.2,37.37 67.71,37.75 68.19,38.18C68.7,38.64 69.17,39.16 69.58,39.72L69.63,39.79C69.98,40.26 70.28,40.77 70.52,41.29C70.94,42.18 71.22,43.13 71.33,44.1L71.35,44.2C71.43,44.93 71.44,45.66 71.36,46.39L71.33,46.63C71.25,47.34 71.09,48.04 70.86,48.7C70.57,49.52 70.17,50.31 69.67,51.01C69.29,51.54 68.86,52.03 68.38,52.47L68.22,52.61C67.74,53.05 67.22,53.45 66.66,53.79L65.71,54.39C65.51,54.52 65.4,54.74 65.41,54.98L65.53,56.81C65.57,57.28 65.51,57.74 65.36,58.18L65.3,58.37C65.16,58.78 64.93,59.16 64.61,59.46C64.27,59.79 63.85,60.02 63.39,60.13L63.18,60.19C62.77,60.29 62.33,60.3 61.91,60.21L61.89,60.21C61.43,60.12 61.01,59.92 60.64,59.64C60.28,59.35 59.98,58.98 59.79,58.55L59.71,58.38C59.52,57.97 59.41,57.53 59.38,57.08Z" + android:fillColor="#0B0726"/> + diff --git a/android/app/src/main/res/drawable/ic_marker_south.xml b/android/app/src/main/res/drawable/ic_marker_south.xml index 2ab524e65..3fc91584f 100644 --- a/android/app/src/main/res/drawable/ic_marker_south.xml +++ b/android/app/src/main/res/drawable/ic_marker_south.xml @@ -1,27 +1,18 @@ + android:width="122dp" + android:height="85dp" + android:viewportWidth="122" + android:viewportHeight="85"> - - - - - - - + android:pathData="M16.15,0L105.3,0A16.15,16.15 0,0 1,121.45 16.15L121.45,16.15A16.15,16.15 0,0 1,105.3 32.3L16.15,32.3A16.15,16.15 0,0 1,0 16.15L0,16.15A16.15,16.15 0,0 1,16.15 0z" + android:fillColor="#0B0726"/> + android:pathData="M32.29,10.65H33.88V16.91H32.29V10.65ZM33.45,12.99H35.36V14.28H33.45V12.99ZM26.65,17.41H33.88V21.64H26.65V17.41ZM32.32,18.66H28.22V20.38H32.32V18.66ZM25.58,11.17H27.17V15.72H25.58V11.17ZM25.58,15.04H26.51C28.03,15.04 29.67,14.93 31.42,14.59L31.6,15.88C29.79,16.25 28.09,16.35 26.51,16.35H25.58V15.04ZM38.28,11.7H39.46V12.29C39.46,13.57 38.72,14.8 37.01,15.22L36.36,14.05C37.66,13.75 38.28,12.99 38.28,12.29V11.7ZM38.75,11.7H39.87V12.27C39.87,12.9 40.48,13.62 41.66,13.91L41.19,15.07C39.45,14.67 38.75,13.43 38.75,12.27V11.7ZM42.51,11.7H43.62V12.27C43.62,13.44 42.93,14.68 41.19,15.07L40.72,13.91C41.9,13.62 42.51,12.91 42.51,12.27V11.7ZM42.94,11.7H44.12V12.29C44.12,13.02 44.73,13.77 46.04,14.05L45.38,15.22C43.68,14.8 42.94,13.61 42.94,12.29V11.7ZM36.84,11.03H40.97V12.29H36.84V11.03ZM41.42,11.03H45.53V12.29H41.42V11.03ZM36.17,15.97H46.23V17.23H36.17V15.97ZM40.4,15.07H41.99V16.97H40.4V15.07ZM37.26,18.12H45.02V21.76H43.42V19.38H37.26V18.12ZM51.65,14.74H53.48V16.02H51.65V14.74ZM55.24,10.65H56.76V21.76H55.24V10.65ZM52.97,10.81H54.47V21.25H52.97V10.81ZM49.71,11.43C51.18,11.43 52.13,12.95 52.13,15.46C52.13,17.98 51.18,19.5 49.71,19.5C48.24,19.5 47.31,17.98 47.31,15.46C47.31,12.95 48.24,11.43 49.71,11.43ZM49.71,12.93C49.11,12.93 48.76,13.77 48.76,15.46C48.76,17.16 49.11,17.99 49.71,17.99C50.33,17.99 50.68,17.16 50.68,15.46C50.68,13.77 50.33,12.93 49.71,12.93ZM63.15,17.39H64.35V17.76C64.35,19.44 63.6,20.98 61.86,21.6L61.08,20.44C62.54,19.95 63.15,18.84 63.15,17.76V17.39ZM63.56,17.39H64.7V17.76C64.7,18.84 65.24,19.97 66.59,20.53L65.96,21.71C64.19,21.05 63.56,19.39 63.56,17.76V17.39ZM67.2,17.39H68.34V17.76C68.34,19.3 67.68,21.03 65.96,21.71L65.3,20.53C66.65,19.92 67.2,18.75 67.2,17.76V17.39ZM67.58,17.39H68.78V17.76C68.78,18.91 69.38,19.98 70.84,20.44L70.06,21.6C68.3,21 67.58,19.51 67.58,17.76V17.39ZM68.28,10.66H69.89V16.93H68.28V10.66ZM63.84,11.22C65.57,11.22 66.86,12.33 66.86,13.89C66.86,15.43 65.57,16.54 63.84,16.54C62.12,16.54 60.82,15.43 60.82,13.89C60.82,12.33 62.12,11.22 63.84,11.22ZM63.84,12.54C63,12.54 62.38,13.03 62.38,13.89C62.38,14.73 63,15.22 63.84,15.22C64.68,15.22 65.3,14.73 65.3,13.89C65.3,13.03 64.68,12.54 63.84,12.54ZM74.74,11.41C76.4,11.41 77.61,12.95 77.61,15.37C77.61,17.82 76.4,19.36 74.74,19.36C73.07,19.36 71.87,17.82 71.87,15.37C71.87,12.95 73.07,11.41 74.74,11.41ZM74.74,12.87C73.94,12.87 73.4,13.74 73.4,15.37C73.4,17.03 73.94,17.92 74.74,17.92C75.56,17.92 76.08,17.03 76.08,15.37C76.08,13.74 75.56,12.87 74.74,12.87ZM79.43,10.63H81.02V21.78H79.43V10.63ZM77.14,14.64H80.1V15.93H77.14V14.64ZM84.95,16.29H86.53V19.41H84.95V16.29ZM88.98,16.29H90.58V19.41H88.98V16.29ZM82.74,19.18H92.8V20.47H82.74V19.18ZM87.76,11.19C90.15,11.19 91.91,12.36 91.91,14.17C91.91,15.99 90.15,17.15 87.76,17.15C85.36,17.15 83.61,15.99 83.61,14.17C83.61,12.36 85.36,11.19 87.76,11.19ZM87.76,12.43C86.21,12.43 85.18,13.07 85.18,14.17C85.18,15.27 86.21,15.91 87.76,15.91C89.31,15.91 90.34,15.27 90.34,14.17C90.34,13.07 89.31,12.43 87.76,12.43ZM94.59,18.42L94.19,12.46H95.89L95.5,18.42H94.59ZM94.29,20.69V19.15H95.81V20.69H94.29Z" + android:fillColor="#ffffff"/> + android:pathData="M59.38,56.92L59.06,52.04C59.03,51.68 59.07,51.31 59.16,50.96L59.22,50.72C59.4,50.05 59.82,49.48 60.4,49.12C60.64,48.97 60.9,48.86 61.17,48.79L62.1,48.56C62.39,48.49 62.67,48.38 62.94,48.25L63.39,48.03C64.02,47.72 64.52,47.2 64.8,46.56C64.99,46.12 65.07,45.65 65.04,45.17L65,44.54C64.96,43.95 64.73,43.38 64.35,42.91C63.92,42.39 63.33,42.03 62.67,41.9L62.46,41.85C62.01,41.76 61.54,41.76 61.09,41.85L60.94,41.88C60.13,42.05 59.43,42.51 58.96,43.17C58.63,43.64 58.43,44.19 58.38,44.76L58.3,45.81C58.27,46.12 58.19,46.42 58.05,46.7C57.73,47.33 57.15,47.8 56.45,47.97L56.3,48.01C55.89,48.11 55.46,48.12 55.04,48.03L54.66,47.95C54.3,47.88 53.95,47.73 53.63,47.52C52.97,47.09 52.51,46.41 52.34,45.64L52.29,45.4C52.23,45.08 52.2,44.75 52.23,44.43L52.34,42.96L52.41,42.62C52.6,41.71 52.94,40.84 53.42,40.05C53.74,39.5 54.14,39 54.58,38.54L54.76,38.36C55.19,37.92 55.65,37.53 56.15,37.18L56.17,37.17C56.81,36.72 57.51,36.35 58.24,36.07C58.92,35.81 59.63,35.63 60.35,35.52L60.56,35.49C61.17,35.4 61.79,35.38 62.41,35.43L62.46,35.43C63.21,35.48 63.94,35.63 64.64,35.88C65.19,36.07 65.71,36.32 66.2,36.61L66.65,36.88C67.2,37.21 67.71,37.59 68.19,38.02C68.7,38.48 69.17,39 69.58,39.56L69.63,39.63C69.98,40.1 70.28,40.61 70.52,41.13C70.94,42.02 71.22,42.97 71.33,43.94L71.35,44.04C71.43,44.77 71.44,45.5 71.36,46.23L71.33,46.47C71.25,47.18 71.09,47.88 70.86,48.54C70.57,49.36 70.17,50.15 69.67,50.85C69.29,51.38 68.86,51.87 68.38,52.31L68.22,52.45C67.74,52.89 67.22,53.29 66.66,53.63L65.71,54.23C65.51,54.36 65.4,54.58 65.41,54.82L65.53,56.65C65.57,57.12 65.51,57.58 65.36,58.02L65.3,58.21C65.16,58.62 64.93,59 64.61,59.3C64.27,59.63 63.85,59.86 63.39,59.97L63.18,60.03C62.77,60.13 62.33,60.14 61.91,60.05L61.89,60.05C61.43,59.96 61.01,59.76 60.64,59.48C60.28,59.19 59.98,58.82 59.79,58.39L59.71,58.22C59.52,57.81 59.41,57.37 59.38,56.92Z" + android:fillColor="#0B0726"/> + diff --git a/android/app/src/main/res/drawable/ic_marker_west.xml b/android/app/src/main/res/drawable/ic_marker_west.xml index ba35acdc1..e7f9e0364 100644 --- a/android/app/src/main/res/drawable/ic_marker_west.xml +++ b/android/app/src/main/res/drawable/ic_marker_west.xml @@ -1,27 +1,18 @@ + android:width="122dp" + android:height="85dp" + android:viewportWidth="122" + android:viewportHeight="85"> - - - - - - - + android:pathData="M16.15,0.16L105.3,0.16A16.15,16.15 0,0 1,121.45 16.31L121.45,16.31A16.15,16.15 0,0 1,105.3 32.46L16.15,32.46A16.15,16.15 0,0 1,0 16.31L0,16.31A16.15,16.15 0,0 1,16.15 0.16z" + android:fillColor="#0B0726"/> + android:pathData="M30.74,14.27H33.67V15.56H30.74V14.27ZM27.71,11.66H29.01V13.27C29.01,16.06 28.06,18.64 25.97,19.69L24.98,18.4C26.87,17.53 27.71,15.38 27.71,13.27V11.66ZM28.05,11.66H29.32V13.27C29.32,15.38 30.13,17.41 31.96,18.22L31.01,19.49C28.93,18.49 28.05,16.04 28.05,13.27V11.66ZM32.87,10.79H34.46V21.94H32.87V10.79ZM38.28,11.86H39.46V12.45C39.46,13.73 38.72,14.96 37.01,15.38L36.36,14.21C37.66,13.91 38.28,13.15 38.28,12.45V11.86ZM38.75,11.86H39.87V12.43C39.87,13.06 40.48,13.78 41.66,14.07L41.19,15.23C39.45,14.83 38.75,13.59 38.75,12.43V11.86ZM42.51,11.86H43.62V12.43C43.62,13.6 42.93,14.84 41.19,15.23L40.72,14.07C41.9,13.78 42.51,13.07 42.51,12.43V11.86ZM42.94,11.86H44.12V12.45C44.12,13.18 44.73,13.93 46.04,14.21L45.38,15.38C43.68,14.96 42.94,13.77 42.94,12.45V11.86ZM36.84,11.19H40.97V12.45H36.84V11.19ZM41.42,11.19H45.53V12.45H41.42V11.19ZM36.17,16.13H46.23V17.39H36.17V16.13ZM40.4,15.23H41.99V17.13H40.4V15.23ZM37.26,18.28H45.02V21.92H43.42V19.54H37.26V18.28ZM51.65,14.9H53.48V16.18H51.65V14.9ZM55.24,10.81H56.76V21.92H55.24V10.81ZM52.97,10.97H54.47V21.41H52.97V10.97ZM49.71,11.59C51.18,11.59 52.13,13.11 52.13,15.62C52.13,18.14 51.18,19.66 49.71,19.66C48.24,19.66 47.31,18.14 47.31,15.62C47.31,13.11 48.24,11.59 49.71,11.59ZM49.71,13.09C49.11,13.09 48.76,13.93 48.76,15.62C48.76,17.32 49.11,18.15 49.71,18.15C50.33,18.15 50.68,17.32 50.68,15.62C50.68,13.93 50.33,13.09 49.71,13.09ZM63.15,17.55H64.35V17.92C64.35,19.6 63.6,21.14 61.86,21.76L61.08,20.6C62.54,20.11 63.15,19 63.15,17.92V17.55ZM63.56,17.55H64.7V17.92C64.7,19 65.24,20.13 66.59,20.69L65.96,21.87C64.19,21.21 63.56,19.55 63.56,17.92V17.55ZM67.2,17.55H68.34V17.92C68.34,19.46 67.68,21.19 65.96,21.87L65.3,20.69C66.65,20.08 67.2,18.91 67.2,17.92V17.55ZM67.58,17.55H68.78V17.92C68.78,19.07 69.38,20.14 70.84,20.6L70.06,21.76C68.3,21.16 67.58,19.67 67.58,17.92V17.55ZM68.28,10.82H69.89V17.09H68.28V10.82ZM63.84,11.38C65.57,11.38 66.86,12.49 66.86,14.05C66.86,15.59 65.57,16.7 63.84,16.7C62.12,16.7 60.82,15.59 60.82,14.05C60.82,12.49 62.12,11.38 63.84,11.38ZM63.84,12.7C63,12.7 62.38,13.19 62.38,14.05C62.38,14.89 63,15.38 63.84,15.38C64.68,15.38 65.3,14.89 65.3,14.05C65.3,13.19 64.68,12.7 63.84,12.7ZM74.74,11.57C76.4,11.57 77.61,13.11 77.61,15.53C77.61,17.98 76.4,19.52 74.74,19.52C73.07,19.52 71.87,17.98 71.87,15.53C71.87,13.11 73.07,11.57 74.74,11.57ZM74.74,13.03C73.94,13.03 73.4,13.9 73.4,15.53C73.4,17.19 73.94,18.08 74.74,18.08C75.56,18.08 76.08,17.19 76.08,15.53C76.08,13.9 75.56,13.03 74.74,13.03ZM79.43,10.79H81.02V21.94H79.43V10.79ZM77.14,14.8H80.1V16.09H77.14V14.8ZM84.95,16.45H86.53V19.57H84.95V16.45ZM88.98,16.45H90.58V19.57H88.98V16.45ZM82.74,19.34H92.8V20.63H82.74V19.34ZM87.76,11.35C90.15,11.35 91.91,12.52 91.91,14.33C91.91,16.15 90.15,17.31 87.76,17.31C85.36,17.31 83.61,16.15 83.61,14.33C83.61,12.52 85.36,11.35 87.76,11.35ZM87.76,12.59C86.21,12.59 85.18,13.23 85.18,14.33C85.18,15.43 86.21,16.07 87.76,16.07C89.31,16.07 90.34,15.43 90.34,14.33C90.34,13.23 89.31,12.59 87.76,12.59ZM94.59,18.58L94.19,12.62H95.89L95.5,18.58H94.59ZM94.29,20.85V19.31H95.81V20.85H94.29Z" + android:fillColor="#ffffff"/> + android:pathData="M59.38,57.08L59.06,52.2C59.03,51.84 59.07,51.47 59.16,51.12L59.22,50.88C59.4,50.21 59.82,49.64 60.4,49.28C60.64,49.13 60.9,49.02 61.17,48.95L62.1,48.72C62.39,48.65 62.67,48.54 62.94,48.41L63.39,48.19C64.02,47.88 64.52,47.36 64.8,46.72C64.99,46.28 65.07,45.81 65.04,45.33L65,44.7C64.96,44.11 64.73,43.54 64.35,43.07C63.92,42.55 63.33,42.19 62.67,42.06L62.46,42.01C62.01,41.92 61.54,41.92 61.09,42.01L60.94,42.04C60.13,42.21 59.43,42.67 58.96,43.33C58.63,43.8 58.43,44.35 58.38,44.92L58.3,45.97C58.27,46.28 58.19,46.58 58.05,46.86C57.73,47.5 57.15,47.96 56.45,48.13L56.3,48.17C55.89,48.27 55.46,48.28 55.04,48.19L54.66,48.11C54.3,48.04 53.95,47.89 53.63,47.68C52.97,47.25 52.51,46.57 52.34,45.8L52.29,45.56C52.23,45.24 52.2,44.91 52.23,44.59L52.34,43.12L52.41,42.78C52.6,41.87 52.94,41 53.42,40.21C53.74,39.66 54.14,39.16 54.58,38.7L54.76,38.52C55.19,38.08 55.65,37.69 56.15,37.34L56.17,37.33C56.81,36.88 57.51,36.51 58.24,36.23C58.92,35.97 59.63,35.79 60.35,35.68L60.56,35.65C61.17,35.56 61.79,35.54 62.41,35.59L62.46,35.59C63.21,35.64 63.94,35.79 64.64,36.04C65.19,36.23 65.71,36.48 66.2,36.77L66.65,37.04C67.2,37.37 67.71,37.75 68.19,38.18C68.7,38.64 69.17,39.16 69.58,39.72L69.63,39.79C69.98,40.26 70.28,40.77 70.52,41.29C70.94,42.18 71.22,43.13 71.33,44.1L71.35,44.2C71.43,44.93 71.44,45.66 71.36,46.39L71.33,46.63C71.25,47.34 71.09,48.04 70.86,48.7C70.57,49.52 70.17,50.31 69.67,51.01C69.29,51.54 68.86,52.03 68.38,52.47L68.22,52.61C67.74,53.05 67.22,53.45 66.66,53.79L65.71,54.39C65.51,54.52 65.4,54.74 65.41,54.98L65.53,56.81C65.57,57.28 65.51,57.74 65.36,58.18L65.3,58.37C65.16,58.78 64.93,59.16 64.61,59.46C64.27,59.79 63.85,60.02 63.39,60.13L63.18,60.19C62.77,60.29 62.33,60.3 61.91,60.21L61.89,60.21C61.43,60.12 61.01,59.92 60.64,59.64C60.28,59.35 59.98,58.98 59.79,58.55L59.71,58.38C59.52,57.97 59.41,57.53 59.38,57.08Z" + android:fillColor="#0B0726"/> + diff --git a/android/app/src/main/res/drawable/ic_message_received.xml b/android/app/src/main/res/drawable/ic_message_received.xml new file mode 100644 index 000000000..712fe8b99 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_message_received.xml @@ -0,0 +1,14 @@ + + + + diff --git a/android/app/src/main/res/drawable/ic_message_send.xml b/android/app/src/main/res/drawable/ic_message_send.xml new file mode 100644 index 000000000..34cbfc6c7 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_message_send.xml @@ -0,0 +1,14 @@ + + + + diff --git a/android/app/src/main/res/drawable/ic_mypage.xml b/android/app/src/main/res/drawable/ic_mypage.xml deleted file mode 100644 index 04771b46a..000000000 --- a/android/app/src/main/res/drawable/ic_mypage.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - diff --git a/android/app/src/main/res/drawable/ic_naaga_logo.xml b/android/app/src/main/res/drawable/ic_naaga_logo.xml new file mode 100644 index 000000000..e2548c1e3 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_naaga_logo.xml @@ -0,0 +1,728 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/ic_setting.xml b/android/app/src/main/res/drawable/ic_setting.xml new file mode 100644 index 000000000..691f41129 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_setting.xml @@ -0,0 +1,10 @@ + + + diff --git a/android/app/src/main/res/drawable/ic_star.xml b/android/app/src/main/res/drawable/ic_star.xml new file mode 100644 index 000000000..b68ee9a6b --- /dev/null +++ b/android/app/src/main/res/drawable/ic_star.xml @@ -0,0 +1,910 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/ic_stop.xml b/android/app/src/main/res/drawable/ic_stop.xml new file mode 100644 index 000000000..d2745ce60 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_stop.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/drawable/ic_success.xml b/android/app/src/main/res/drawable/ic_success.xml deleted file mode 100644 index c606aee66..000000000 --- a/android/app/src/main/res/drawable/ic_success.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/android/app/src/main/res/drawable/ic_success_adventure.xml b/android/app/src/main/res/drawable/ic_success_adventure.xml new file mode 100644 index 000000000..c16f083ae --- /dev/null +++ b/android/app/src/main/res/drawable/ic_success_adventure.xml @@ -0,0 +1,14 @@ + + + + diff --git a/android/app/src/main/res/drawable/ic_success_label.xml b/android/app/src/main/res/drawable/ic_success_label.xml new file mode 100644 index 000000000..a9eb30db8 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_success_label.xml @@ -0,0 +1,6 @@ + + + + diff --git a/android/app/src/main/res/drawable/ic_upload.xml b/android/app/src/main/res/drawable/ic_upload.xml deleted file mode 100644 index fefac2583..000000000 --- a/android/app/src/main/res/drawable/ic_upload.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/android/app/src/main/res/drawable/naaga_icon_background.xml b/android/app/src/main/res/drawable/naaga_icon_background.xml new file mode 100644 index 000000000..e009ebe7e --- /dev/null +++ b/android/app/src/main/res/drawable/naaga_icon_background.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/naaga_icon_foreground.xml b/android/app/src/main/res/drawable/naaga_icon_foreground.xml new file mode 100644 index 000000000..d1cc549ee --- /dev/null +++ b/android/app/src/main/res/drawable/naaga_icon_foreground.xml @@ -0,0 +1,733 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/oval_blue_gradient.xml b/android/app/src/main/res/drawable/oval_blue_gradient.xml new file mode 100644 index 000000000..ff3354c75 --- /dev/null +++ b/android/app/src/main/res/drawable/oval_blue_gradient.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/res/drawable/oval_orange_gradient.xml b/android/app/src/main/res/drawable/oval_orange_gradient.xml new file mode 100644 index 000000000..120a3e511 --- /dev/null +++ b/android/app/src/main/res/drawable/oval_orange_gradient.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/res/drawable/oval_yellow_gradient.xml b/android/app/src/main/res/drawable/oval_yellow_gradient.xml new file mode 100644 index 000000000..fa763a897 --- /dev/null +++ b/android/app/src/main/res/drawable/oval_yellow_gradient.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/res/drawable/rect_main_gradient.xml b/android/app/src/main/res/drawable/rect_main_gradient.xml deleted file mode 100644 index 8d1b47b1c..000000000 --- a/android/app/src/main/res/drawable/rect_main_gradient.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - diff --git a/android/app/src/main/res/drawable/rect_radius_small_white.xml b/android/app/src/main/res/drawable/rect_radius_small_white.xml deleted file mode 100644 index ed6ce6653..000000000 --- a/android/app/src/main/res/drawable/rect_radius_small_white.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/android/app/src/main/res/font/main_font.otf b/android/app/src/main/res/font/main_font.otf new file mode 100644 index 0000000000000000000000000000000000000000..7bf60ffe22fa956d101ae2d80b3b6f43040d05b7 GIT binary patch literal 1836848 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 &i}IDMuY6O!D?i8v%1`B&@>}_%{8j#` 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

p#?O0P0Sl?!!^{ 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�BBg?_Xx3o1*9IHR=!Gs}yY77zvT(u~q*b&DJ5! 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%0D@jaF;)C!en*DGj#o-$k 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�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�_QYIC~DSO>47d#sTBM;#V)G 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%0APBvR!JcN;Ds#opGN_FVaX= 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�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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/layout/activity_adventure_history.xml b/android/app/src/main/res/layout/activity_adventure_history.xml index dcc468b50..8d5d45c38 100644 --- a/android/app/src/main/res/layout/activity_adventure_history.xml +++ b/android/app/src/main/res/layout/activity_adventure_history.xml @@ -13,33 +13,30 @@ android:id="@+id/iv_adventureHistory_back" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="24dp" - android:layout_marginTop="24dp" + android:layout_marginStart="8dp" + android:layout_marginTop="16dp" android:paddingHorizontal="16dp" android:paddingVertical="12dp" + android:src="@drawable/ic_arrow" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - android:src="@drawable/ic_arrow" /> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="@+id/iv_adventureHistory_back" /> + app:layout_constraintTop_toTopOf="parent" /> + tools:src="@drawable/ic_success_label" /> @@ -87,9 +84,8 @@ android:id="@+id/tv_adventureResult_timeTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:fontFamily="@font/pretendard_bold" android:text="@string/adventureResult_time_description" - android:textColor="@color/black" + android:textColor="@color/main_gray" android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -99,16 +95,14 @@ android:id="@+id/tv_adventureResult_playTime" android:layout_width="0dp" android:layout_height="wrap_content" - android:text="@{@string/adventureResult_play_time_value(viewModel.adventureResult.playTime)}" - android:fontFamily="@font/pretendard_bold" - android:textColor="@color/white" - android:textSize="20sp" + android:layout_marginStart="100dp" + android:background="@drawable/bg_blue_gradient" android:gravity="end" - android:background="@drawable/rect_radius_small" - android:backgroundTint="@color/main_navy" - android:layout_marginStart="40dp" android:paddingVertical="4dp" android:paddingEnd="@dimen/space_default_medium" + android:text="@{@string/adventureResult_play_time_value(viewModel.adventureResult.playTime)}" + android:textColor="@color/white" + android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/tv_adventureResult_timeTitle" @@ -132,9 +126,8 @@ - - - - - - - - - - - -