Skip to content

Commit

Permalink
V1.0.0 Main 브랜치 반영 (#73)
Browse files Browse the repository at this point in the history
* [BASE] #1 프로젝트 기본 작업 세팅 (#2)

* commit test

* [base] 버전 카탈로그 설정

* [base] issue, pr 템플릿 생성

* [base] ktlint 적용

* [base] ktlint 적용으로 인한 컨벤션 수정

* [base] 멀티모듈 설정

* [base] ktlint 적용으로 인한 컨벤션 수정

* [base] 코틀린 버전 수정

* [BASE] #3 디자인 시스템 모듈 생성

* [BASE] #3 폰트 파일 추가

* [FEAT] #3 색상, 글꼴 디자인 시스템 적용한 PokitTheme 구현

* [BASE] #3 figma에 존재하는 아이콘 svg파일 추가

* [FEAT] #3 디자인 시스템 버튼 구현

* [FEAT] #3 디자인 시스템 Input 구현

* [FEAT] #3 디자인 시스템 LinkCard 구현

* [FEAT] #3 디자인 시스템 CategoryCard 구현

* [FEAT] #3 디자인 시스템 textInput 구현 - 네이밍을 LabeledInput으로 변경

* [FEAT] #3 디자인 시스템 textArea 구현 - 네이밍을 PokitInputArea로 변경

* [FEAT] #3 누락된 inputAreaState enum class 추가

* [FEAT] #3 디자인 시스템 select 구현

* [FEAT] #3 디자인 시스템 아이콘 리소스 추가

* [FEAT] #3 디자인 시스템 chip 구현

* [FEAT] #3 디자인 시스템 chip 구현 (누락된 attributes 추가)

* [FEAT] #3 디자인 시스템 checkbox 구현

* [FEAT] #3 디자인 시스템 radioSwitch 구현

* [FEAT] #3 디자인 시스템 input 관련 component 리펙토링

* [REFACTOR] #3 디자인 시스템 button component 리펙토링

* [REFACTOR] #3 디자인 시스템 component preview를 별도의 파일로 분리

* [FEAT] #3 디자인 시스템 tap 구현

* [CHORE] #3 ktlink 규칙에 맞게 코드 수정

* [CHORE] #3 디자인 시스템 BottomSheet 구현

* [CHORE] #3 ./gradlew ktlintFormat 적용

* [REFACTOR] #3 디자인 시스템 select component 리펙토링

* [CHORE] #3 when문이 하나의 값을 기준으로 케이스를 구분하고 있으면서, 코드블록에 로직이 없는 경우 한 라인으로 작성하도록 수정

* [CHORE] #3 pokitButtonContainerModifier의 padding 설정 메서드 중 중복되는 부분 분리 및 버튼 preview 수정

* [FEATURE] #4 SNS 로그인 구현 (#6)

* [base] firebase 라이브러리 추가 및 적용

* [base] google-services.json 추가

* [base] gitignore 업데이트

* [chore] 구글 로그인 의존성 마이그레이션

* [chore] 인터넷 권한 추가

* [chore] 미사용 리소스 제거

* [chore] target api 수정

* [chore] credentials proguard 추가

* [chore] login 모듈 manifest 제거

* [chore] 미사용 리소스 제거

* [chore] theme 디자인 시스템 반영 및 로그인 화면 등록

* [feature] 구글 로그인 구현

* [chore] 미사용 리소스 제거 및 즁요 정보 은닉화

* [chore] 트레일링 콤마 추가

* [chore] properties.getProperty elvis 연산 추가

* [chore] properties.getProperty("web_client_id") null인 경우 추가

* [chore] google client id ktlint ci 조건 추가

* [Base] #10 �디자인 시스템 수정 및 추가구현 (#11)

* [UI] #10 text 간격 조절

* [UI] #10 icon만 존재하는 PokitButton의 좌우 패딩값이 상하 패딩값과 동일해지도록 수정

* [UI] #10 컴포넌트 이름 변경 CategoryCard -> PokitList

* [FEATURE] #10 PokitCard 컴포넌트 구현

* [UI] #10 LinkCard 컴포넌트에서 즐겨찾기 제거 및 안읽음 표시 UI 수정

* [UI] #10 LabeledInput에서 글자수 표시 부분을 선택 가능하도록 수정

* [UI] #10 PokitButton Large 사이즈의 높이 조정

* [UI] #10 typography의 글자 크기를 sp에서 dp로 수정

* [UI] #10 PokitBottomSheet가 시스템 navigation bar영역에 겹쳐보이는 문제 수정

* [UI] #10 ktlintFormat 적용

* [UI] #10 PokitInput Default, Input 상태일 시 디자인 수정 및 Round Shape일 때 높이 수정

* [UI] #10 PushCard 컴포넌트 구현

* [FEATURE] #9 링크 추가하기 화면 구현 (#12)

* [BASE] #9 링크 추가 화면 모듈 생성

* [BASE] #9 링크 추가 화면 UI 구현

* [FEAT] #9 링크 추가 화면 ViewModel 구현 및 세부 UI 수정

* [FEAT] #9 링크 수정 화면 구현

* [CHORE] #9 접근 제한자 설정

* [FIX] #9 textField에 텍스트 입력시 cursor가 밀려 비정상적으로 입력되는 현상 수정

* [CHORE] #9 ktlink 형식 맞춤

* [Feature] #13 포킷 추가 화면 구현 (#15)

* [BASE] #13 feature:addpokit 모듈 생성

* [BASE] #13 이미지 선택부분을 제외한 포킷 추가 화면 구현

* [FEATURE] #13 포킷 프로필 선택부분 구현

* [CHORE] #13 ktlint 적용

* [CHORE] #13 포킷 이름 최대 글자수 상수로 분리

* [CHORE] #13 core 모듈 resource를 사용하는 부분을 alias import로 변경

* [CHORE] #13 settings.gradle에 feature:addpokit 모듈 추가

* [Base] #14 디자인 시스템 수정 및 추가구현  (#17)

* [FEATURE] #14 아이템 수정 bottomSheet, 아이템 삭제 bottomSheet 구현

* [UI] #14 PokitList에서 state기본값을 Disable에서 Default로 수정 및 케밥 버튼 제거

* [CHORE] #14 PokitList 케밥 버튼 제거로 인한 인자 변경내용 반영 (AddLinkScreen, AddPokitScreen)

* [CHORE] #14 ModifyBottomSheet, RemoveItemBottomSheet를 PokitBottomSheet 를 포함하지 않는 방식으로 수정

* [FIX] #14 ModifyBottomSheetContent 에서 공유 버튼 클릭 이벤트가 연결되지 않던 문제 수정

* [UI] #8 회원가입, 로그인 프로세스 화면 구현 (#18)

* [UI] #10 text 간격 조절

* [UI] #10 icon만 존재하는 PokitButton의 좌우 패딩값이 상하 패딩값과 동일해지도록 수정

* [UI] #10 컴포넌트 이름 변경 CategoryCard -> PokitList

* [FEATURE] #10 PokitCard 컴포넌트 구현

* [UI] #10 LinkCard 컴포넌트에서 즐겨찾기 제거 및 안읽음 표시 UI 수정

* [UI] #10 LabeledInput에서 글자수 표시 부분을 선택 가능하도록 수정

* [UI] #10 PokitButton Large 사이즈의 높이 조정

* [UI] #10 typography의 글자 크기를 sp에서 dp로 수정

* [UI] #10 PokitBottomSheet가 시스템 navigation bar영역에 겹쳐보이는 문제 수정

* [UI] #10 ktlintFormat 적용

* [UI] #10 PokitInput Default, Input 상태일 시 디자인 수정 및 Round Shape일 때 높이 수정

* [UI] #10 PushCard 컴포넌트 구현

* [chore] core:ui 모듈 추가

* [ui] 로그인 화면 UI 구현

* [chore] ci 코드 컨벤션 반영

* [chore] 로그인 프로세스 string resouce 추가

* [ui] 디자인 시스템 수정

- checkbox iconOnly 대응

* [chore] string resource 추가

* [chore] 디자인 시스템 반영 및 리소스 적용

* [ui] 약관화면 구현

* [chore] string id 수정

* [chore] adjustResize 속성 추가

* [feature] LoginNavHost 구현

* [ui] LoginScreen 구현

* [chore] string resource 수정

* [feature] 약관동의 화면 구현

* [ui] 체크박스 디자인시스템 로직 수정

* [chore] string resource 추가

* [ui] 카테고리, 회원가입 완료 화면 추가

* [chore] 코딩 컨벤션 반영

* [chore] loginbutton 패키지 추가 및 파일 이동

* [chore] string 및 디자인 resource casting

* [chore] 컨벤션 반영

* [chore] 컨벤션 반영

* [chore] Preview 수정

* [chore] 로그인 버튼 속성 수정

* [chore] 미사용 리소스 제거

* [chore] padding 속성 수정

---------

Co-authored-by: yunsehwan <[email protected]>

* [UI] #16 포킷 상세 화면 구현 (#20)

* [BASE] #16 feature:pokitdetail 모듈 생성

* [UI] #16 LinkCard에서 타이틀 이름이 길어지는 경우 우상단의 케밥 버튼이 밀려나는 현상 수정

* [FEATURE] #16 포킷 상세 화면 UI 구현

* [FEATURE] #16 링크 상세 bottomSheet UI 구현

* [FEATURE] #16 포킷 상세 화면 관련 bottomSheet UI 구현 맟 화면과 연결

* [CHORE] #16 ktlink 적용

* [CHORE] #16 코드 리뷰내용 반영
: lambda 내에서 it대신 명시적인 변수명 사용
: nullable한 변수에 null 기본값 설정

* [Feature] #21 검색 화면 구현 (#23)

* [BASE] #21 검색 화면 모듈 생성

* [FEATURE] #21 필터 영역 제외한 검색 화면 UI 구현 및 PokitInput에서 아이콘 클릭 이벤트를 수신할 수 있도록 변경

* [FEATURE] #21 필터 영역 및 달력 제외한 filter bottomsheet ui 구현

* [FEATURE] #21 달력 ui 구현

* [FEATURE] #21 달력 ui 수정

* [FEATURE] #21 검색 화면에 달력 UI 연결 및 viewModel 구현

* [UI] #21 PokitInput의 singleline 속성 추가 및 KeyboardAction와 focusRequester를 인자 추가 (기본값 존재)

* [CHORE] #21 세부 사항 수정
- 아래 문제점 수정
: "모아보기", "안읽음" 필터 클릭시 포킷 선택으로 bottomSheet가 호출되던 문제
: bottomSheet에서 저장하기 클릭시 필터가 전부 취소되어 있을 때 필터 버튼만 표시되던 문제
- 아래 기능 구현
: 키보드 엔터 클릭시 검색 결과 화면으로 이동
: 검색어 제거 클릭시 검색창 활성화
: 정렬 기준 변경 로직 추가

* [CHORE] #21 ktlint 적용

* [chore] ktlint rule 추가

* [BASE] #22 Hilt 모듈 구현 (#24)

* [chore] hilt 의존성 추가

* [feature] PokitApplication 구현 및 등록

* [feature] NetworkModule 모듈 구현

* [chore] 타임아웃 설정

* [chore] auth request, response 데이터 추가

* [chore] auth api 추가

* [chore] auth api 수정

* [chore] 버전 카탈로그 라이브러리 추가

- domain 모듈 inject
- logging-interceptor

* [feature] hilt + 네트워크 모듈 구현

* [chore] @androidentrypoint 애노테이션 추가

* [chore] kotest 의존성 추가

* [feature] sns로그인 api연동

* [feature] 테스트 토큰 인터셉터 구현

* [feature] 닉네임 입력 화면 설계

* [chore] 뷰모델 주입

* [chore] 미사용 리소스 제거

* [chore] 코딩 컨벤션 적용

* [chore] 코딩 컨벤션 적용

* [chore] orbit 제거

* [chore] LoginScreen 로직 수정

* [feature] 애플 로그인 구현

* [feature] 네트워크 통신 모듈 구현

* [chore] 클래스명 수정

* [chore] 주석 제거

* [feature] parseErrorResult 함수 구현

* [chore] 닉네임 중복 처리 api 세팅

* [chore] parseErrorResult 분리 및 적용

* [chore] 중복 닉네임 api 세팅

* [chore] 코딩 컨벤션 반영

* [chore] ktlint rule 추가

* [chore] ktlint_standard_function-name 제거

* [chore] 파일 이름 수정

* [Base] #26 디자인 시스템-BottomSheet 추가 및 수정 (#27)

* [FIX] #26 기존 bottomSheet에서 close animation이 제대로 동작하지 않던 문제 수정

* [FEATURE+FIX] #26 단일 버튼 BottomSheet 구현 및 기존 RemoveItemBottomSheet를 TwoButtonBottomSheet로 변경

* [CHORE] #26 ktlint 적용

* [CHORE] #26 코드 리뷰 피드백 반영

* [Base] #25 app navigation 구현 (#30)

* [BASE] #25 hilt 미적용 feature 모듈에 대해 hilt 라이브러리 설정 및 hiltViewModel 적용

* [BASE] #25 루트 네비게이션 로직 초기 구현
- 아직 각 화면간 이동 로직은 구현되지 않고 navHost내 화면들만 구성한 상태

* [BASE] #25 optional한 인자 전달 관련 코드 수정 및 아래 구현된 Screen에 화면 이동 로직 적용
- 링크 추가/수정
- 포킷 상세
- 검색

* [FEATURE] #29 로그인 프로세스 api 연동 (#31)

* [chore] 주석 제거

* [feature] 닉네임 중복체크 API 연동

* [chore] string resource 추가

* [feature] 회원가입 UseCase 구현

* [chore] 회원가입 api 추가

* [chore] 디폴트 아규먼트 수정

* [feature] 회원가입 API 연동 및 구현

* [chore] 코드 컨벤션 적용

* [chore] 코드리뷰 반영

* [chore] 가시성 제한자 수정

* [chore] 코드 컨벤션 수정

* [FEATURE] #7 설정화면 구현 (#33)

* [base] settings 모듈 추가

* [base] string resource 추가

* [chore] 컴포즈 의존성 추가

* [chore] settings 모듈 의존성 추가

* [chore] compose 옵션 추가

* [ui] 설정화면 UI 구현

* [ui] 바텀시트 추가

* [ui] 닉네임 수정 화면 구현

* [feature] 닉네임 수정 구현

* [chore] 코딩 컨벤션 반영

* [chore] 코딩 컨벤션 반영

* [chore] 코딩 컨벤션 반영

* [chore] 코드리뷰 반영

* [chore] 코딩 컨벤션 반영

* [Feature] #32 포킷 상세 및 포킷 추가/수정화면 API 연결 (#35)

* [FEATURE] #32 포킷 목록 조회 API 구현 (useCase, repository, datasource, api)

* [FIX] 포킷 상세 화면에서 포킷 수정과 링크 수정의 이벤트 호출부가 서로 바뀌어 있던 현상 수정

* [BASE] #32 RemotePokitDataSource, PokitRepositoryImpl 관련 테스트코드 작성

* [BASE] #32 pokitDetail 모듈에 domain의존성 추가 및 매핑 함수 구현

* [BASE] #32 포킷 상세 화면 포킷 목록 조회 useCase 연결 및 포킷 목록 페이지네이션 구현

* [FEATURE] #32 포킷 상세 화면 포킷 목록 조회 useCase 연결 및 포킷 목록 페이지네이션 구현

* [FEATURE] #32 포킷 수정/포킷 추가 API, repository, useCase 구현

* [UI] #32 포킷 상세 화면에서 링크 아이템의 날짜+도메인을 표시하는 텍스트의 최대 라인을 1로 변경 및 해당 케이스 preview 추가

* [FEATURE] #32 카테고리 내 링크 목록 조회 API, repository, useCase 구현

* [UI] #32 카테고리 상세 화면에서 필터의 정렬 기준값 2개가 모두 "최신순"으로 되어있던 부분 수정

* [FEATURE] #32 카테고리 상세 화면에서 링크 페이지네이션 적용 및 기존 카테고리 내 링크 목록 조회에서 필터 옵션 적용가능하도록 수정 + 테스트코드 추가

* [FIX] #32 포킷 목록 페이징에서 새로고침시 기존 데이터를 지우지 않던 문제 수정

* [FIX] #32 포킷 내 링크 목록 조회의 response 변경내역 적용 및 포킷 상세 화면에 진입할 때마다 새로고침되는 현상 수정

* [FEATURE] #32 포킷 상세조회, 포킷 이미지 목록 조회 API, Datasource, Repository, UseCase 구현

* [FEATURE] #32 포킷 상세 화면에 포킷 상세조회 UseCase연결

* [FEATURE] #32 포킷 추가/수정 화면에 API 연결 및 포킷 목록 리스트 페이지네이션 적용

* [FIX] #32 포킷 추가 모듈에 누락된 coil 라이브러리 의존성 추가

* [FEATURE] #32 포킷 추가 화면에 추가/수정 API 연결 및 포킷 도메인과 관련된 에러 코드 매핑 로직 구현

* [FEATURE] #32 포킷 삭제, 포킷 개수 조회 API, datasource, repository, useCase 구현

* [FEATURE] #32 포킷 상세 화면에 포킷 삭제 API 연결

* [FEATURE] #32 포킷 수정 후 포킷 상세 화면에서 포킷 명 변경 반영

* [CHORE] #32 ktlint 적용, 오타 수정

* [CHORE] #32 코드리뷰 반영

* [Feature]#36 링크 관련 API 구현 및 링크 추가/수정 화면, 검색 화면에 연결 (#37)

* [FEATURE] #36 링크 삭제, 링크 수정, 검색 링크 목록, 링크 상세 조회 API, Datasource, UseCase 구현

* [FEATURE] #36 검색화면 검색 API 연동

* [FEATURE] #36 검색화면 bottomSheet 내 포킷 목록 조회 API 연결

* [FEATURE] #36 검색화면의 link상세 bottomSheet 구현 및 기존 bottomSheet에 공유 제외 클릭 이벤트 연결

* [BASE] #36 data 모듈에 room, sharedPreferences 관련 세팅 및 데이터베이스 구성

* [FEATURE] #36 최근 검색어 관련 기능 구현

* [FEATURE] #36 즐겨찾기 등록/취소 API, datasource, useCase 구현

* [FEATURE] #36 검색 화면에 즐겨찾기 등록/취소 API 연결

* [FIX] #36 페이징 클래스에서 아이템 수정이 반영되지 않는 문제 수정

* [FEATURE] #36 링크 추가, open graph 링크 메타 정보 조회 api, datasource, repository, usecase 구현

* [FEATURE] #36 링크 추가 화면에 링크 추가, 링크 수정, 링크 메타 정보 조회 useCase 연결

* [FIX] #36 링크 추가 화면에서 링크 입력 도중 1초 이상 시간 소요시 키보드를 강제 종료시키는 문제 수정

* [CHORE] #36 ktlint 적용

* [FEATURE] #36 미분류 카테고리 컨텐츠 조회 API, datasource, api 구현

* [FIX] #36 rootNavHost에 링크 추가/삭제 화면 인자 변경 반영

* [FEATURE] #19 Home화면 UI 구현 및 API 연동 (#38)

* [base] 모듈 생성

* [chore] 프로가드 파일 추가

* [ui] HomeHeader UI 구현

* [ui] PokitScreen subBar UI 구현

* [chore] 이름 수정

* [ui] PokitItem 구현

* [ui] PokitItem 구현

* [chore] PokitItem 삭제

- 하 개뻘짓함;;;

* [ui] PokitScreen UI 구현

* [chore] 프리뷰 이름 수정

* [ui] 미분류 UI 구현

* [ui] 바텀네비 구현

* [ui] 헤더 수정

* [ui] mid 수정

* [ui] Pokit 화면 구현

* [ui] HomeScreen 포킷 화면 연동

* [chore] height 수정

* [chore] 아이콘 사이즈 수정

* [chore] 미사용 리소스 제거

* [ui] 미분류 화면 구현

* [ui] 리마인드 화면 구현

* [Feature] #32 포킷 상세 및 포킷 추가/수정화면 API 연결 (#35)

* [FEATURE] #32 포킷 목록 조회 API 구현 (useCase, repository, datasource, api)

* [FIX] 포킷 상세 화면에서 포킷 수정과 링크 수정의 이벤트 호출부가 서로 바뀌어 있던 현상 수정

* [BASE] #32 RemotePokitDataSource, PokitRepositoryImpl 관련 테스트코드 작성

* [BASE] #32 pokitDetail 모듈에 domain의존성 추가 및 매핑 함수 구현

* [BASE] #32 포킷 상세 화면 포킷 목록 조회 useCase 연결 및 포킷 목록 페이지네이션 구현

* [FEATURE] #32 포킷 상세 화면 포킷 목록 조회 useCase 연결 및 포킷 목록 페이지네이션 구현

* [FEATURE] #32 포킷 수정/포킷 추가 API, repository, useCase 구현

* [UI] #32 포킷 상세 화면에서 링크 아이템의 날짜+도메인을 표시하는 텍스트의 최대 라인을 1로 변경 및 해당 케이스 preview 추가

* [FEATURE] #32 카테고리 내 링크 목록 조회 API, repository, useCase 구현

* [UI] #32 카테고리 상세 화면에서 필터의 정렬 기준값 2개가 모두 "최신순"으로 되어있던 부분 수정

* [FEATURE] #32 카테고리 상세 화면에서 링크 페이지네이션 적용 및 기존 카테고리 내 링크 목록 조회에서 필터 옵션 적용가능하도록 수정 + 테스트코드 추가

* [FIX] #32 포킷 목록 페이징에서 새로고침시 기존 데이터를 지우지 않던 문제 수정

* [FIX] #32 포킷 내 링크 목록 조회의 response 변경내역 적용 및 포킷 상세 화면에 진입할 때마다 새로고침되는 현상 수정

* [FEATURE] #32 포킷 상세조회, 포킷 이미지 목록 조회 API, Datasource, Repository, UseCase 구현

* [FEATURE] #32 포킷 상세 화면에 포킷 상세조회 UseCase연결

* [FEATURE] #32 포킷 추가/수정 화면에 API 연결 및 포킷 목록 리스트 페이지네이션 적용

* [FIX] #32 포킷 추가 모듈에 누락된 coil 라이브러리 의존성 추가

* [FEATURE] #32 포킷 추가 화면에 추가/수정 API 연결 및 포킷 도메인과 관련된 에러 코드 매핑 로직 구현

* [FEATURE] #32 포킷 삭제, 포킷 개수 조회 API, datasource, repository, useCase 구현

* [FEATURE] #32 포킷 상세 화면에 포킷 삭제 API 연결

* [FEATURE] #32 포킷 수정 후 포킷 상세 화면에서 포킷 명 변경 반영

* [CHORE] #32 ktlint 적용, 오타 수정

* [CHORE] #32 코드리뷰 반영

* [chore] HomeViewModel 추가

* [feature] 카테고리 타입 화면 렌더링 구현

* [feature] 리마인드 화면 연결

* [feature] 정렬순서 로직 반영

* [Feature]#36 링크 관련 API 구현 및 링크 추가/수정 화면, 검색 화면에 연결 (#37)

* [FEATURE] #36 링크 삭제, 링크 수정, 검색 링크 목록, 링크 상세 조회 API, Datasource, UseCase 구현

* [FEATURE] #36 검색화면 검색 API 연동

* [FEATURE] #36 검색화면 bottomSheet 내 포킷 목록 조회 API 연결

* [FEATURE] #36 검색화면의 link상세 bottomSheet 구현 및 기존 bottomSheet에 공유 제외 클릭 이벤트 연결

* [BASE] #36 data 모듈에 room, sharedPreferences 관련 세팅 및 데이터베이스 구성

* [FEATURE] #36 최근 검색어 관련 기능 구현

* [FEATURE] #36 즐겨찾기 등록/취소 API, datasource, useCase 구현

* [FEATURE] #36 검색 화면에 즐겨찾기 등록/취소 API 연결

* [FIX] #36 페이징 클래스에서 아이템 수정이 반영되지 않는 문제 수정

* [FEATURE] #36 링크 추가, open graph 링크 메타 정보 조회 api, datasource, repository, usecase 구현

* [FEATURE] #36 링크 추가 화면에 링크 추가, 링크 수정, 링크 메타 정보 조회 useCase 연결

* [FIX] #36 링크 추가 화면에서 링크 입력 도중 1초 이상 시간 소요시 키보드를 강제 종료시키는 문제 수정

* [CHORE] #36 ktlint 적용

* [FEATURE] #36 미분류 카테고리 컨텐츠 조회 API, datasource, api 구현

* [FIX] #36 rootNavHost에 링크 추가/삭제 화면 인자 변경 반영

* [ui] TodayLinkCard 구현

* [feature] 미사용 리소스 제거 및 포킷 조회 api 연동

* [chore] createdAt 추가

* [chore] createdAt 추가

* [feature] 최신순, 이름순 정렬 구현

* [chore] coil 추가

* [chore] private 키워드 추가

* [chore] private 키워드 수정

* [feature] 미분류 구현

* [chore] 미사용 리소스 제거

* [feature] 리마인드 api 연동

* [chore] 컴포저블 이름 수정

* [ui] 바텀시트 구현

* [feature] 1차 QA

* [chore] ktlint test

* [chore] 주석제거

* [chore] , 추가

---------

Co-authored-by: Sehwan Yun <[email protected]>

* [Feature] #34 알림 화면 구현 (#40)

* [BASE] #34 feature:alarm 모듈 생성

* [FEATURE] #34 Alert관련 API, Datasource, Repository, UseCase 구현

* [FEATURE] #34 알림함 화면 구현 및 rootNavHost에 추가

* [FIX] #34 알림함 화면에서 페이지네이션이 정상적으로 수행되지 않던 문제 수정 및 알람 제거시 애니메이션 효과 추가

* [CHORE] #34 알림함 화면 Preview 문제 해결

* [UI] #41 8월 22일자 디자인 QA 적용 (#42)

* [UI] #41 메인 화면 하단 네비게이션 클릭 영역 조절

* [UI] #41 디자인 시스템 수정
- 브랜드 색상 변경
- body1SemiBold 폰트 스타일 추가
- PokitButton에 DEFAULT 스타일 추가
- PokitCard 이미지 크기 및 폰트 수정

* [UI] #41 홈 화면 포킷/미분류 버튼 사이즈 조절 및 PokitScreen Modifier 인자 미적용 수정

* [UI] #41 포킷 추가화면 수정사항 반영
- 포킷 목록 텍스트 색상 수정
- 배경색상 수정
- 상단 toolbar 간격 조정
- 포킷 이미지 내 배경색 제거
- 포킷 추가시 기본 포킷 이미지를 푸키로 설정
- 포킷 이미지 선택 UI 수정

* [UI] #41 링크 추가화면 수정사항 반영
- 배경화면 색상 수정
- 저장하기 버튼 하단 고정

* [UI] #41 검색화면 수정사항 반영
- 배경화면 색상 수정
- 필터 chip 순서 수정 및 텍스트 변경

* [UI] #41 status bar 색상을 흰색으로 수정

* [UI] #41 홈 화면에서 좌우 끝부분에 연보라색 영역 제거

* [UI[ #28 스플래쉬 및 로그인 UI 수정 (#43)

* [chore] datastore 의존성 추가

* [chore] datastore 의존성 수정

* [chore] preference 의존성 추가

* [feature] LocalDataSource 구현

* [feature] 스플래쉬 화면 구현

* [ui] 로그인 화면 로고 추가

* [chore] 브랜드 컬러 수정

* [ui] 회원가입 완료 화면 구현

- svg 이슈 확인할 것

* [chore] 스트링 리소스 추가

- svg 이슈 확인할 것

* [chore] 코딩 컨벤션 적용

* [chore] 코딩 컨벤션 적용

* [chore] 메인화며 로직 수정

* [Fix] hackerton ysh (#45)

* [FIX] #41 링크 추가/삭제 UseCase, Repository의 Result 타입을 int에서 Link로 수정 (링크 업데이트 내용 반영 구현 관련)

* [BASE] #41 core:feature 모듈 추가

* [FIX] #41 RemindResult에 id값 추가

* [FEATURE] #41 링크 추가/수정, 포킷 추가/수정시 다른 화면에 반영되도록 구현

* [FIX] #41 포킷 수정화면에서 기존 포킷의 정보를 UI에 반영하지 못하는 문제 수정, 포킷 수정 호출시 memo가 emptyString일시 body request에서 제외되어 전송되는 문제 수정

* [FIX] #41 리마인드 화면 내 화면 이동 로직 누락 수정

* [FIX] #41 링크 리스트 조회의 isRead, favorites 변수값을 Nullable하게 수정

* [FEATURE] #41 포킷, 링크 삭제 발생시 관련 화면에서 이벤트 수신 가능하도록 구현

* [CHORE] #41 ktlint 적용

* [FIX] #41 포킷 상세 조회시 기본 필터값 중 북마크여부와 안읽음 여부를 false로 변경

* [FEATURE] #44 토큰 인터셉트, 리프레쉬 구현 (#46)

* [chore] NavHost 백그라운드 추가

* [feature] 토큰 인터셉트 구현

* [chore] 파일 이름 수정

* [feature] isRegistered에 따른 로직 분기 구현 (#49)

* [FEATURE] #48 hackerton (#51)

* [feature] isRegistered에 따른 로직 분기 구현

* [feature] 자동 로그인 구현

* [feature] 공지사항 등 url 링크 이동

* [feature] 회원탈퇴 구현

* [base] 아이콘 등록

* [chore] 코딩 컨벤션 수정

* [chore] 미사용 리소스 제거

* [feature] noRippleClickable 구현 및 적용

* [base] 로고 수정 및 앱 이름 수정 반영

* [chore] 코딩 컨벤션 반영

* [feature] 설정화면 기능 구현

* [chore] 코딩 컨벤션 반영

* [chore] 로그 제거

* [UI] #47 세부 UI 수정 (#50)

* [UI] #47-회원가입 성공화면 이미지 추가

* [FIX] #47-링크/포킷 추가시 관련 화면에서 이벤트 수신 및 처리부분 추가

* [FIX] #47-response가 없는 api의 경우 리턴값을 Response<Unit>으로 설정 및 이에 따른 dataSource 코드 수정

* [BASE] #47-로딩, 에러, 빈 리스트시 표시할 component 추가

* [FEATURE] #47-홈, 검색, 포킷 상세 화면에서 로딩/에러/빈 리스트 표시 UI 적용

* [BASE] #47-커스텀 토스트 UI component 추가

* [FIX] #47-홈 화면에 누락된 포킷 제거 이벤트 추가

* [CHORE] #47-ktlint 적용

* [FIX] #47-검색 API에서 isRead와 favorites를 Nullable하게 변경

* [FIX] #47-검색 화면에서 링크 이미지가 구글 로고로 표시되던 문제 수정

* [FIX] #47-LinkCard의 badgeText를 Nullable하게 수정 및 리마인드 화면에서 링크 url이 badgeText로 들어가는 문제 수정

* [FIX] #47-검색 화면에서 안읽은 표시가 정 반대로 표시되는 문제 수정

* [FEATURE] #47-홈 화면, 링크 추가 화면에 PokitToast 적용

* [CHORE] #47-ktlint 적용

* [FEATURE] #52 로그인 바텀시트 렌더링 (#53)

* [feature] 로그인 바텀시트 구현

* [chore] 코딩 컨벤션 적용

* [FIX] #54-링크 클릭시 웹 브라우저 호출 로직 구현 (#55)

* [feature] 설정화면 뒤로가기 구현

* [Fix] #56 세부사항 수정 (#57)

* [FIX] #56-홈 화면/포킷 미분류 목록 표시 문제 및 케밥 버튼 클릭 이벤트 누락 수정

* [FIX] #56-홈 화면/포킷 미분류 목록 클릭시 상세 bottomSheet가 표시되지 않던 문제 수정

* [FIX] #56-검색 화면에서 링크 삭제 이벤트 누락 수정

* [FIX] #56-포킷 상세 화면에서 링크 제거시 자동으로 뒤로가기 이벤트가 발생하던 현상 수정 및 링크 제거시 리스트에서 해당 링크가 제거되도록 수정

* [FIX] #56-링크 수정 화면 진입시 링크 썸네일 이미지를 가져오는 작업 추가

* [CHORE] #56-누락된 코드 추가

* [CHORE] #56-심사제출용 미동작 버튼 UI 숨김처리

* [FIX] #56-리마인드 화면에서 링크 상세 bottomSheet에서 이미지가 보이지 않는 문제 수정

* [CHORE] #56-ktlint 적용

* [Fix] #58 메인 화면 QA 진행 (#60)

* [REFACTOR] #58-링크 상세 bottomsheet를 core:ui 모듈로 이동 및 적용

* [CHORE] #58-미사용 component 제거

* [FIX] #58-링크 상세 bottomSheet에서 이미지가 Crop되어 보이지 않는 문제 수정

* [FIX] #58-링크 기본 썸네일 이미지가 표시되지 않는 문제 수정

* [FIX] #58-메인 포킷 화면에서 포킷 수정 클릭시 포킷 상세로 이동하던 문제 수정

* [FIX] #58-메인 포킷 화면에서 정렬기준 변경시 반영되지 않던 문제 수정

* [FIX] #58-메인 포킷 화면에서 미분류 링크 정렬 변경시 반영되지 않던 문제 수정

* [FIX] #58-메인 화면에서 알람 클릭시 알람 화면으로 이동하지 않는 문제 수정

* [FIX] #58-메인 화면 리마인드에서 "오늘 이 링크는 어때요?" 부분이 정상적으로 표시되지 않던 문제 수정

* [FIX] #58-메인 화면 리마인드의 링크 상세 bottomSheet에서 즐겨찾기 변경 기능 추가

* [CHORE] #58-ktlint 적용

* [FIX] #59 20240828 QA (#62)

* [chore] 알림 설정 텍스트 숨김 처리

* [chore] 회원가입 뒤로가기 버튼 숨김 처리

* [chore] 닉네임 중복 검사 딜레이 감소

* [chore] 닉네임 처리 진해중

* [chore] 닉네임 처리 진해중

* [Fix] #61 qa add pokit link (#63)

* [FIX] #61-미분류 링크 추가 후 메인 화면 포킷에 적용되지 않는 문제 수정

* [FIX] #61-포킷 추가 요청 에러 발생시 뒤로가기 및 다른 화면 이벤트가 반응하지 않는 문제 수정, 닉네임 중복 검사 에러시 toast 메세지가 표시되도록 변경

* [FIX] #61-링크 추가 화면에서 포킷 목록 조회시 미분류가 표시되지 않는 문제 수정

* [FIX] #61-링크 추가 화면에서 리마인드 기능 임시 비활성화, 링크 추가화면에서 포킷 추가시 해당 포킷으로 설정되도록 수정, 타이틀 글자제한 제거

* [FIX] #61-홈 화면 포킷에서 링크 수정 bottomSheet 호출시 pokit수정 bottomSheet가 같이 올라오는 문제 수정

* [FIX] #61-링크 추가 화면에서 타이틀 설정 안되는 문제 수정

* [FIX] #61-링크 추가 화면에서 url로드 성공시 타이틀을 url 타이틀로 수정

* [CHORE] #61-ktlint 적용

* [Fix] #64 qa link detail (#66)

* [FIX] #64-링크 상세 BottomSheet에서 알림 아이콘이 항상 활성화되어있는 문제와 포킷명이 항상 "텍스트"로 표시되는 문제 수정

* [FIX] #64-링크 즐겨찾기 취소가 정상적으로 작동하지 않던 문제 수정

* [FIX] #64-링크 상세 bottomSheet에 즐겨찾기 클릭이 작동하지 않던 문제 수정, 추가/수정/공유 bottomSheet에서 공유 버튼 제거

* [CHORE] #64-ktlint

* [FIX] #64-포킷 상세 화면에서 읽음 안읽음 여부가 반대로 표시되던 문제 수정, 북마크 변경이 정상적으로 동작하지 않던 문제 수정

* [FIX] #64-(임시수정) 즐겨찾기 링크에서 카테고리 이름 표시 부분에 링크 Url이 표시되는 현상 수정하기 위해 임의로 해당 UI 제거. 추후 Remind 데이터 형식에 포킷명이 포함되도록 수정할 때 다시 반영 필요

* [CHORE] #64-ktlint 적용

* [Fix] #67 qa bottom sheet (#68)

* [fix] 닉네임 로직 수정

- isError 확인

* [fix] 공유하기 토스트 추가

- 토스트 추가

* [fix] 공유, 수정, 삭제 버튼 노출

* [fix] 메모 입력 버그 수정

* [chore] 코딩 컨벤션 반영

* [FIX] #67-링크 추가 화면에서 포킷목록 조회 bottomSheet에서 포킷목록이 많을 경우 화면을 꽉 채우는 문제 수정

* [FIX] #67-bottomSheet의 구분을 위한 그림자 추가

* [FIX] #67-홈 화면에서 bottomSheet의 배경 색상 수정

* [FIX] #67-라미인드 화면 배경 색상 조정

* [FIX] #67-리마인드 화면에서 "오늘 이 링크는 어때요?"에 표시되는 link UI의 카테고리 표시 부분 임시 숨김처리 수행

* [FIX] #67-검색 화면에서 공유 기능 누락 추가

---------

Co-authored-by: jiwon2724 <[email protected]>

* [Fix]#69 1차 배포 전 QA 사항 반영 (#70)

* [FIX] #69-포킷 수정 중 수정 전 포킷 이름도 닉네임 중복 검사에 포함되던 문제 수정

* [FIX] #69-미분류 링크 목록에서 링크 상세 조회시 읽은 처리가 안되는 문제

* [FIX] #69-포킷 상세 화면에 진입시 포킷 내 링크 개수가 0으로 표시되는 문제 수정

* [FIX] #69-포킷 상세, 닉네임 설정, 설정화면의 헤더 영역의 위치를 링크 추가 화면의 헤더 영역의 위치로 통일

* [UI] #69-알림함 화면에서 알림이 비었을 때 표시되는 UI 추가 및 적용

* [FIX] #69-bottomSheet 그림자 수정 및 포킷 상세에서 포킷 목록 bottomSheet 조회시 bottomSheet가 화면 전체를 채우는 문제 수정

* [FIX] #69-링크 상세 bottomSheet에 수정/삭제 클릭 이벤트 누락 추가

* [FIX] #69-검색 화면에서 링크 조회시 안읽음 처리가 변경되지 않는 문제 수정

* [FIX] #69-링크 수정시 간혹 링크 이미지가 안보이는 문제 수정

* [CHORE] #69-ktlint 적용

* [CHORE] #69-ktlint 적용

* [CHORE] #69-푸키 캐릭터 영문명 수정 (pokki -> pooki)

* [CHORE] #69-modifier에서 height, width가 동일한 경우 size를 사용하도록 수정

* [CHORE] 버젼 코드 수정

---------

Co-authored-by: 정지원 <[email protected]>
Co-authored-by: jiwon2724 <[email protected]>
  • Loading branch information
3 people authored Sep 22, 2024
1 parent 201bba1 commit 9d9e53a
Show file tree
Hide file tree
Showing 564 changed files with 22,900 additions and 72 deletions.
14 changes: 14 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
root = true

[*]
max_line_length = 160

[*.{kt,kts}]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
trim_trailing_whitespace = true
insert_final_newline = true
tab_width = 4
ij_kotlin_allow_trailing_comma = true
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/issue-생성.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
name: Issue 생성
about: 여러 타입의 이슈를 생성합니다.
title: "[FEATURE CHORE BUG HOTFIX BASE UI] 이슈 제목"
labels: ''
assignees: ''

---

## 내용
작업 내용을 요약해주세요.
## Todo
- [ ] todo1
- [ ] todo2
29 changes: 29 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## Key Changes
<!---- 변경 사항, 개발 및 관련 이슈에 대해 간단하게 작성해주세요. -->
Resolves: #(Isuue Number)

## PR 유형
어떤 변경 사항이 있나요?
- [ ] 새로운 기능 추가
- [ ] 버그 수정
- [ ] CSS 등 사용자 UI 디자인 변경
- [ ] 코드에 영향을 주지 않는 변경사항(오타 수정, 탭 사이즈 변경, 변수명 변경)
- [ ] 코드 리팩토링
- [ ] 주석 추가 및 수정
- [ ] 문서 수정
- [ ] 테스트 추가, 테스트 리팩토링
- [ ] 빌드 부분 혹은 패키지 매니저 수정
- [ ] 파일 혹은 폴더명 수정
- [ ] 파일 혹은 폴더 삭제

## To Reviewers
- 리뷰어에게 중점적으로 확인받고 싶은 내용을 알려주세요.

## PR Checklist
PR이 다음 요구 사항을 충족하는지 확인하세요.
- [ ] 커밋 메시지 컨벤션에 맞게 작성했습니다.
- [ ] 정해진 코딩 컨벤션에 맞게 작성했습니다.
- [ ] 변경 사항에 대한 테스트를 했습니다.(버그 수정/기능에 대한 테스트)

## Etc.
<!---- 그 외 기타 등등 사항(리뷰어가 알아야하는 등등)을 기록해주세요. -->
37 changes: 37 additions & 0 deletions .github/workflows/ktlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Android CI

on:
push:
branches: [ "develop" ]
pull_request:
branches: [ "develop" ]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: check out repository
uses: actions/checkout@v3

- name: set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: gradle

- name: check google client id
env:
GOOGLE_CLIENT_ID: ${{secrets.GOOGLE_CLIENT_ID}}
run: |
echo web_client_id=\""$GOOGLE_CLIENT_ID"\" >> local.properties
- name: Run ktlint
run: ./gradlew ktlintCheck

- name: Run unit tests
run: ./gradlew testDebugUnitTest

- name: Build with Gradle
run: ./gradlew assembleDebug
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@
/captures
.externalNativeBuild
.cxx
local.properties
app/google-services.json
12 changes: 12 additions & 0 deletions .idea/deploymentTargetDropDown.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion app/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
/build
/build
/local.properties
google-services.json
45 changes: 39 additions & 6 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
plugins {
alias(libs.plugins.androidApplication)
alias(libs.plugins.jetbrainsKotlinAndroid)
alias(libs.plugins.com.android.application)
alias(libs.plugins.org.jetbrains.kotlin.android)
alias(libs.plugins.hilt)
alias(libs.plugins.googleServices)
alias(libs.plugins.kotlin.parcelize)
id("kotlin-kapt")
}

android {
Expand All @@ -11,8 +15,8 @@ android {
applicationId = "pokitmons.pokit"
minSdk = 24
targetSdk = 34
versionCode = 1
versionName = "1.0"
versionCode = 2
versionName = "1.0.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
Expand Down Expand Up @@ -50,7 +54,6 @@ android {
}

dependencies {

implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
Expand All @@ -66,4 +69,34 @@ dependencies {
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)
}

implementation(project(":core:ui"))
implementation(project(":core:feature"))
implementation(project(":data"))
implementation(project(":domain"))
implementation(project(":feature:addlink"))
implementation(project(":feature:addpokit"))
implementation(project(":feature:alarm"))
implementation(project(":feature:login"))
implementation(project(":feature:pokitdetail"))
implementation(project(":feature:search"))
implementation(project(":feature:settings"))
implementation(project(":feature:home"))

// hilt
implementation(libs.hilt)
kapt(libs.hilt.compiler)

// firebase
implementation(platform(libs.firebase.bom))
implementation(libs.firebase.auth.ktx)

// navigation
implementation(libs.androidx.navigation.compose)
implementation(libs.hilt.navigation.compose)

// orbit
implementation(libs.orbit.compose)
implementation(libs.orbit.core)
implementation(libs.orbit.viewmodel)
}
62 changes: 62 additions & 0 deletions app/google-services.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
"project_info": {
"project_number": "217769178527",
"project_id": "pokit-f5c83",
"storage_bucket": "pokit-f5c83.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:217769178527:android:5d7efa4ceafe61c37af9aa",
"android_client_info": {
"package_name": "pokitmons.pokit"
}
},
"oauth_client": [
{
"client_id": "217769178527-jaa8p8nfmic1j1065qs5a7vfqt18qec0.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "pokitmons.pokit",
"certificate_hash": "9ded6dcd446add68f506001f3c1b457cc1c3be9e"
}
},
{
"client_id": "217769178527-mmbheg9v5npdhdrbfq78slpsk8lt2nga.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "pokitmons.pokit",
"certificate_hash": "b2f3e34f8e02d15beb0d10d3d48a05148e943642"
}
},
{
"client_id": "217769178527-tslgsrrr1o8bli4hr4qnas2u9kg80a9h.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyDMh93QvJGUUX8-E-wyJoSS3cFrwfw8Q3w"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "217769178527-l4prj2q9qsuvkodc2cpi84psvul5rth2.apps.googleusercontent.com",
"client_type": 3
},
{
"client_id": "217769178527-021j3dpbues9rhbkp6cffnn19mdajorq.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "com.pokitmons.pokit.App"
}
}
]
}
}
}
],
"configuration_version": "1"
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package pokitmons.pokit

import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4

import androidx.test.platform.app.InstrumentationRegistry
import junit.framework.TestCase.assertEquals
import org.junit.Test
import org.junit.runner.RunWith

import org.junit.Assert.*

/**
* Instrumented test, which will execute on an Android device.
*
Expand All @@ -21,4 +19,4 @@ class ExampleInstrumentedTest {
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("pokitmons.pokit", appContext.packageName)
}
}
}
12 changes: 8 additions & 4 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,24 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET" />

<application
android:allowBackup="true"
android:name=".PokitApplication"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:icon="@mipmap/ic_launcher_pooki"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:roundIcon="@mipmap/ic_launcher_pooki_round"
android:supportsRtl="true"
android:theme="@style/Theme.Pokit"
tools:targetApi="31">
tools:targetApi="34">
<activity
android:screenOrientation="portrait"
android:name=".MainActivity"
android:exported="true"
android:label="@string/app_name"
android:windowSoftInputMode="adjustResize"
android:theme="@style/Theme.Pokit">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Expand Down
Binary file added app/src/main/ic_launcher_pooki-playstore.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 9d9e53a

Please sign in to comment.