-
CalendarViewWithNotesActivitySDK21 : 커스텀한 달력의 구현 Activity가 있는 패키지이다.
◇ 주요 변수
mShortMonths (현재 월), mCalendarView (커스텀한 달력), mCalendarDialog(날짜 클릭 시 생성되는 다이얼로그), mEventList(불러들인 월의 일정 리스트), user(현재 사용자 모델), CurrentUid(현재 사용자의 Uid), CurrentUser(현재 사용자 정보), Check_Month_Visited_List(불러들인 달의 리스트)
◆ 주요 기능
ⓐ CalendarView에서 구현한 커스텀 달력을 띄워준다. 날짜를 클릭하면 해당 날짜 다이얼로그를 생성한다.
ⓑ 일정이 표시되는 상황
-처음 켜졌을 때 : CollectionReference로 파이어베이스에서 불러온다.
-어플 사용중에 일정이 추가 되었을 때 : OnActivityResult(내가 추가하였을 때) / Listener(상대방이 추가했을 때)를 이용하여 불러온다.
-다른 월로 이동하였을 때 : 이동한 월에 대한 일정을 Listener를 이용하여 불러온다.
ⓒ 일정 추가 버튼으로 일정을 추가할 수 있다. -
CalendarView : 어플리케이션에 필요한 커스텀한 달력을 구현한 view이다.
◇ 특징
여러가지 작은 view들이 모여 하나의 커다란 calewndarview라는 커스텀 뷰를 구성하고 있다.
◆ 주요 기능
ⓐ 여러가지 리스너가 있다. (달이 이동함을 감지하는 리스너, 날짜가 클릭됨을 감지하는 리스너 등)
ⓑ 이전 달 다음달에 표시되어야 할 월을 구해준다.
ⓒ 총 7X6의 42개의 날짜 칸을 해당 달은 어디서부터 어디까지인지 계산하고, 날짜를 표기해준다.
ⓓ 해당 월의 일정의 정보와 누가 작성한 것인지를 구분하여 일정바 색을 달리해준다.
ⓔ 날짜 다이얼로그에서 드래그해 온 일정이 어느 날자에 추가 될것인지 드래그 된 위치를 감지하여 알려준다.
ⓕ 달력을 구성하는 선의 색상 및 속성을 선언한다. -
CalendarDialog : 달력에서 날짜를 클릭하여 생성된 해당 날짜의 다이얼로그이다.
◆ 주요 기능
ⓐ 뷰페이저를 이용해 이전과 다음 날짜의 다이얼로그를 오고 갈 수 있다.
ⓑ 일정을 오른족에서 왼쪽으로 스와이핑하면 삭제할 수 있다.
ⓒ 일정을 롱클릭하여 드래그할 수 있으며, 드래그하면 다이얼로그가 닫히고, 달력에 원하는 날짜에 드롭할 수 있다. 그러면 해당 날짜를 시작으로 일정이 이동된다.
-
Create_Schadule : CalendarViewWithNotesActivitySDK21에서 일정을 추가하는 버튼을 클릭하였을 때 혹은 일정을 수정할 때에 실행되는 activity이다.
◇ 주요 변수
Start_Calendar(시작 날짜), End_Calendar(끝 날짜)
◆ 주요 기능
ⓐ 일정을 추가할 때면 일정이 비어있고, 날짜는 오늘 날짜로 설정되어 있다.
ⓑ 일정을 수정할 때면 선택한 일정의 정보가 입력되어 있다.
ⓒ 날짜를 클릭하면 소형 달력이 나와 날짜를 선택할 수 있다.
ⓓ 생성된 일정은 파이어스토어의 CALENDAR 컬렉션에 저장된다. -
DragCreate_Schedule : CalendarDialog에서 일정을 롱클릭하여 드래그로 날짜에 드롭했을 때 실행되는 액티비티이다.
◇ 주요 변수
Start_Calendar(시작 날짜), End_Calendar(끝 날짜)
◆ 주요 기능
ⓐ Create_Schadule에서 일정을 수정할 때처럼 가져온 일정의 정보가 설정되어 있다.
ⓑ 원한다면 날짜나 일정의 내용을 수정하여 추가할 수 있다. -
SelectDateAndTimeActivity : 일정을 추가할 때에 날짜와 시간을 선택할 수 있는 Picker가 있는 activity이다.
◆ 주요 기능
ⓐ 상단에는 날짜를 하단에는 시간을 선택할 수 있는 Picker가 있다.
-
FrameLinearLayout : 달력에서 날짜를 구성하는 하나하나의 직사각형의 모양 틀 view
-
ItemTouchHelperCallback : 날짜 다이얼로그에서 일정을 오른쪽에서 왼쪽으로 스와이핑 했을 때
-
ItemTouchHelperListener : ItemTouchHelperCallback에서 이루어지는 스와이핑과 버튼의 클릭을 감지하는 리스너이다.
-
SelectedTextView : 날짜가 클릭되었을 때 테두리가 점선이 그어지는 효과를 줄 수 있는 view이다.
-
YMDCalendar : 캘린더의 값을 Year Month Day 3가지의 int형 데이터로 다룰 때에 사용하는 모델이다.
- NumberPicker : 날짜를 선택하고 시간을 선택할 때에 시간 분의 선택을 위한 숫자 선택을 위한 view
-
couple_askActivity : 사용자 정보를 입력하고 난 후 커플을 맺기 위한 activity이다.
◇ 특징
코드를 보내주는 사람 / 코드를 받아서 입력하는 사람으로 나뉜다.
◆ 주요 기능
ⓐ 코드를 보내주는 사람 / 코드를 받아서 입력하는 사람으로 나뉜다.
ⓑ 코드를 보내주는 사람 > '커플코드가 뭔지 몰라요' 클릭
ⓒ 코드를 받아서 입력하는 사람 > '커플코드가 있어요' 클릭 -
couple_startdateActivity : 커플코드를 보내주는 사람이 연인의 연애 시작일을 입력하는 activity이다.
◆ 주요 기능
ⓐ 날짜를 입력하고 다음 버튼을 누르는 순간 파이어 스토어에 COUPLE 컬렉션에 반쪽짜리 커플이 생성된다.
ⓑ 남자와 여자일 때 각각 상대방의 생년월일은 0년 0월 0일로 초기화 시켜 커플 데이터를 생성한다. -
couple_codecreateActivity : couple_startdateActivity에서 날짜를 입력하고 넘어오면 커플 코드를 발급 받을 수 있다.
◆ 주요 기능
ⓐ 코드복사를 하여 클립보드에 커플 코드를 복사하여 저장 할 수 있다.
ⓑ 코드복사를 하면 상대방이 코드를 입력할 때까지 대기한다. (토스트 메시지로 복사가 완료되었음을 알수 있다.) -
couple_editcodeActivity : 커플코드를 받아서 입력하는 사람이 받은 코드를 입력하는 activity이다.
◆ 주요 기능
ⓐ 복사한 코드를 입력하여 다음을 누르면 couple_startdateActivity에서 생성된 반쪽짜리 커플에 코드를 받아 입력한 사람의 데이터가 입력되며 커플이 맺어진다. -
couple_finishActivity : 앱을 이용하기 이전에 커플이 맺어졌음을 알려주는 activity이다.
◆ 주요 기능
ⓐ 커플 코드를 보낸 사람은 상대방이 입력을 완료하면 이동하게 된다.
ⓑ 커플 코드를 받아 입력한 사람은 입력을 완료하면 이동하게 된다.
- LoginActivity : 어플의 시작화면이며, 로그인하는 activity이다.
◆ 주요 기능
ⓐ 카카오 로그인과 구글 로그인이 있으며, 이미 로그인 정보가 있다면, 바로 메인 달력 화면으로 넘어가게 된다. - MemberInitActivity : 로그인 후 사용자의 정보를 받는 activity이다.
◆ 주요 기능
ⓐ 이름, 성별, 생일, 프로필 사진, 닉네임 등을 입력 받는다.
ⓑ 사용자의 정보는 파이어스토어의 USER 컬렉션에 저장된다.
ⓒ 프로필 사진의 url은 파이어스토어에 이미지 자체는 파이어스토어 Storage에 저장된다. - GalleryActivity : 프로필 사진의 선택을 위해 앨범으로 접근하는 activity이다.
◆ 주요 기능
ⓐ 앨범 접근에 대한 권한을 요청 받은 후 앨범에 접근할 수 있다.
ⓑ GalleryAdapter로 앨범의 사진을 나열 받는다.
-
GalleryAdapter : 앨범 내의 사진들의 나열하는 adapter이다.
◆ 주요 기능
ⓐ item_gallery로 하나하나의 이미지들을 리사이클러 뷰로 나열한다. -
GlobalApplication : 카카오 로그인을 위한 java 파일이다.
◆ 주요 기능
ⓐ 여러가지 에러를 잡는 조건문이 있다.
-
USER : 사용자의 정보를 다루는 USER 모델
◆ 주요 기능
ⓐ 사용자의 이름, 성별, 닉네임, 생일 년월일, 커플Uid, 유저의 Uid, 레벨, 프로필 이미지 url -
COUPLE : 커플의 정보를 다루며, 이어주는 COUPLE 모델
◆ 주요 기능
ⓐ 커플의 Uid, 연애 시작 , 닉네임, 생일 년월일, 커플Uid, 레벨, 프로필 이미지 url -
CALENDAR : 로그인 액티비티
◆ 주요 기능
ⓐ 일정 Uid, Event Uid, 일정 내용, 일정 시작 날짜, 일정 종료 날짜, 일정 fix 날짜, 일정 일수
ⓑ 파이어베이스에 저장되는 CALENDAR 컬렉션을 다루는 모델이다. -
Event : 메인 액티비티
◆ 주요 기능
ⓐ 일정 Uid, Event Uid, 일정 내용, 일정 시작 날짜, 일정 종료 날짜, 일정 fix 날짜, 일정 일수
ⓑ Calendarview에서 일정을 다루기 위해서 CALLENDAR 모델을 담은 모델이다.
-
BasicActivity
◆ 주요 기능
ⓐ toolbar를 어플리케이션의 코드 전반에서 모두 똑같은 코드를 사용하므로 Util 패키지로 빼내어서 사용한다. -
Util
◆ 주요 기능
ⓐ BasicActivity와 비슷한 기능을 하며, 앨범의 경로를 찾아갈 때에 공통적으로 사용한다.
ⓐ 파이어스토어에 Storage에 이미지를 저장할 때에 Storage의 주소를 빼내어 사용한다.