Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update v4.0.8 #482

Merged
merged 66 commits into from
Nov 24, 2024
Merged
Changes from 1 commit
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
9496f5a
[Add] 학기 편집 다이얼로그 ui 추가
nodobi Nov 14, 2024
3c30a83
[Add] 학기 텍스트 string.xml 리소스로 추가
nodobi Nov 14, 2024
66c8993
[fix] 시간표 디테일 수정
Jokwanhee Nov 14, 2024
a110921
[Add] 비로그인 유저 시간표 프레임 가져오는 로직 추가
nodobi Nov 14, 2024
a43f37e
[Add] 클릭한 시간표 정보 TimetableActivity 로 전달하는 로직 추가
nodobi Nov 14, 2024
a8bae9d
[add] TimetableActivityV2 진입점 추가
Jokwanhee Nov 14, 2024
e1cfb3f
[fix] 학부 리스트 수정
Jokwanhee Nov 14, 2024
eb0b96c
[fix] 요청 DTO 변경
Jokwanhee Nov 14, 2024
ebf8330
[fix] 시간표 진입 변경
Jokwanhee Nov 14, 2024
9c4f013
[fix] 요청 DTO 변경
Jokwanhee Nov 15, 2024
79fecd0
[fix] grade 요청 값 0 설정
Jokwanhee Nov 15, 2024
15f679e
[Add] 작업 과정1
nodobi Nov 17, 2024
8f4c971
Merge branch 'develop' into feature/timetable_semester
nodobi Nov 17, 2024
c24e8ec
Merge remote-tracking branch 'origin/feature/timetable_semester' into…
Jokwanhee Nov 17, 2024
8d7a672
[del] GetSemesterUseCase 삭제
Jokwanhee Nov 17, 2024
95af304
[add] 로딩 추가
Jokwanhee Nov 17, 2024
d482740
[add] 로그인 네비게이션 연결
Jokwanhee Nov 17, 2024
6f009f4
[add] 학기 텍스트 추가
Jokwanhee Nov 17, 2024
e5e2850
[fix] noRippleClickable로 변경
Jokwanhee Nov 17, 2024
8786637
[del] import 문 삭제
Jokwanhee Nov 17, 2024
111c343
[fix] snackbar 애니메이션 수정
Jokwanhee Nov 17, 2024
6cdee91
[fix] bottom padding
Jokwanhee Nov 17, 2024
ffc9e40
[add] timetable v2 navigation 연결
Jokwanhee Nov 18, 2024
c20f408
Merge pull request #479 from BCSDLab/release
ThirFir Nov 18, 2024
57a4a15
[Add] 학기 수정 완료시 시간표 이름을 번들에 추가
nodobi Nov 19, 2024
2ef1212
[Fix] 학기 삭제 확인 모달 제대로 안뜨는 문제 수정
nodobi Nov 19, 2024
e699751
[Fix] 학기 추가 시 정렬 안되는 문제 수정, 변수명 정리
nodobi Nov 19, 2024
56299cc
[Fix] 프레임 편집 다이얼로그 제대로 안뜨는거 수정
nodobi Nov 19, 2024
199be65
[Add] 시간표 삭제 되돌리기 기능 추가
nodobi Nov 19, 2024
345c299
[Add] 스낵바 Action 콜백 파라미터 추가
nodobi Nov 19, 2024
3244e11
[Add] 시간표 삭제 되돌리기 스낵바 추가
nodobi Nov 19, 2024
4056cf8
[Add] 시간표 비로그인 유저 대응
nodobi Nov 19, 2024
2b780a2
[Add] TextCheckBox 비활성화 색상 추가
nodobi Nov 19, 2024
b853dc9
[Add] 시간표 편집 다이얼로그 체크박스 비활성화 추가
nodobi Nov 19, 2024
f1e4335
[Fix] 시간표 삭제 스낵바 ui 수정
nodobi Nov 19, 2024
a3f72b4
[Fix] 보여지는 시간표 이름 최대 길이 수정
nodobi Nov 19, 2024
e239bc2
[Fix] TODO 제거
nodobi Nov 20, 2024
3c6da5b
[Add] 학기 추가 에러 메세지 추가
nodobi Nov 20, 2024
1254373
[Add] SemesterSideEffect 추가
nodobi Nov 20, 2024
9440050
[Add] 에러 토스트 추가
nodobi Nov 20, 2024
d64437d
[Fix] 테스트로 변경한 이동 복구
nodobi Nov 20, 2024
d7c691c
Merge remote-tracking branch 'origin/feature/timetable_semester' into…
Jokwanhee Nov 20, 2024
d18347c
[fix] custombarhost
Jokwanhee Nov 20, 2024
569b09a
[fix] 가보자
Jokwanhee Nov 20, 2024
e8a3032
[Add] 학기 -> 시간표 데이터 작업 1
nodobi Nov 20, 2024
faf77ee
[add] loading false
Jokwanhee Nov 20, 2024
de61fdc
[add] 비었을 때, 학기 추가하기 글씨 적용
Jokwanhee Nov 20, 2024
e11dc6f
[Fix] 학기 empty 인 경우 처리
nodobi Nov 20, 2024
ff158f1
[add] empty 처리
Jokwanhee Nov 20, 2024
dfd4b3a
[fix] 빈 학기 로직 수정
Jokwanhee Nov 20, 2024
a52967c
[Fix] 최근 학기 시간표가 반환되지 않는 문제 수정
nodobi Nov 20, 2024
033ce56
[fix] 힘들어 이제
Jokwanhee Nov 20, 2024
572173a
[fix] 찐막
Jokwanhee Nov 20, 2024
2f19411
[fix] default value 수정
Jokwanhee Nov 20, 2024
53ce18a
[fix] 비로그인 시간표 정보 초기화 프로퍼티 추가
Jokwanhee Nov 20, 2024
1c5dbd5
[fix] 시간표 화면 네비게이션 변경
Jokwanhee Nov 22, 2024
fa1d7ca
Merge pull request #474 from BCSDLab/feature/timetable_api_v4
Jokwanhee Nov 22, 2024
e29afb1
add: 키워드 알림 배너 ui 추가
wateralsie Nov 19, 2024
56ff478
add: recyclerview에 키워드 알림 배너 추가
wateralsie Nov 21, 2024
1071391
chore: 네이밍 변경
wateralsie Nov 21, 2024
3d29819
add: 일주일마다 배너 텍스트 변경 구현
wateralsie Nov 22, 2024
1d055ba
add: AB테스트 추가
wateralsie Nov 22, 2024
d033389
add: 키워드 알림 AB테스트, 인기 공지 로깅
wateralsie Nov 23, 2024
d366d74
fix: AB테스트 activity에 제대로 반영 안되는 문제 수정
wateralsie Nov 23, 2024
3d3b65a
add: 키워드 알림 배너 클릭 로깅
wateralsie Nov 23, 2024
fdcb31a
Merge pull request #481 from BCSDLab/feature/keyword-noti-abtest
wateralsie Nov 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[add] 로딩 추가
  • Loading branch information
Jokwanhee committed Nov 17, 2024
commit 95af304fc23c559f1db8bfe8fcef277ea30c94df
Original file line number Diff line number Diff line change
@@ -12,8 +12,8 @@ import `in`.koreatech.koin.domain.usecase.timetable.AddTimetableLectureUseCase
import `in`.koreatech.koin.domain.usecase.timetable.DeleteTimetableFrameLectureUseCase
import `in`.koreatech.koin.domain.usecase.timetable.DeleteTimetableLectureUseCase
import `in`.koreatech.koin.domain.usecase.timetable.GetLecturesUseCase
import `in`.koreatech.koin.domain.usecase.timetable.GetSemesterUseCase
import `in`.koreatech.koin.domain.usecase.timetable.GetTimetableFramesUseCase
import `in`.koreatech.koin.domain.usecase.timetable.GetUserSemestersUseCase
import `in`.koreatech.koin.feature.timetable.model.TimetableEvent
import `in`.koreatech.koin.feature.timetable.state.BottomSheetUI
import `in`.koreatech.koin.feature.timetable.state.CustomContentState
@@ -43,13 +43,12 @@ import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
import timber.log.Timber
import java.time.LocalTime
import javax.inject.Inject

@HiltViewModel
class TimetableViewModel @Inject constructor(
private val getLecturesUseCase: GetLecturesUseCase,
private val getSemesterUseCase: GetSemesterUseCase,
private val getSemesterUseCase: GetUserSemestersUseCase,
private val getTimetableFramesUseCase: GetTimetableFramesUseCase,
private val addTimetableLectureUseCase: AddTimetableLectureUseCase,
private val deleteTimetableLectureUseCase: DeleteTimetableLectureUseCase,
@@ -97,7 +96,6 @@ class TimetableViewModel @Inject constructor(
updateLoading(true)
val semesters = getSemester(state.value.isAnonymous)
val semester = semesters.firstOrNull().orEmpty()
// TODO: 로그인 시, 학기를 불러올 때 Empty 이면 학기 추가를 해야하는 경고문 추가하기 (디자인 없어서 추가해야 함)

_lectures.value = getLectures(semester)

@@ -120,22 +118,22 @@ class TimetableViewModel @Inject constructor(
}

false -> {
// TODO : 로그인 시 시간표 수업 불러오기
val timetableFrames = getTimetableFrames(semester).ifEmpty {
updateSemesters(semesters, semester)
return@launch
}
val frameId = timetableFrames.find { it.isMain }?.id
if (frameId == null) {
val frame = timetableFrames.find { it.isMain }
if (frame == null) {
updateSemesters(semesters, semester)
return@launch
}

timetableRepository.getTimetableLectures(frameId)
timetableRepository.getTimetableLectures(frame.id)
.onSuccess { timetableLectures ->
_state.value = _state.value.copy(
range = timetableLectures.formatTimeRange(),
frameId = timetableLectures.timetableFrameId,
timetableName = frame.timetableName,
semesters = semesters,
timetableEvents = timetableLectures.getTimetableEvents(),
currentSemester = semester,
@@ -148,8 +146,36 @@ class TimetableViewModel @Inject constructor(
}
}
}
}
}

fun getRefreshData(frameId: Int, semester: String, frameName: String) { // TODO : 시간표 제목도 보내주쇼..
if (state.value.frameId == frameId) return
viewModelScope.launch {
updateLoading(true)
_lectures.value = getLectures(semester)
when (state.value.isAnonymous) {
true -> {

}
false -> {
timetableRepository.getTimetableLectures(frameId)
.onSuccess { timetableLectures ->
_state.value = _state.value.copy(
range = timetableLectures.formatTimeRange(),
frameId = timetableLectures.timetableFrameId,
timetableName = frameName,
timetableEvents = timetableLectures.getTimetableEvents(),
currentSemester = semester,
timetableLectures = timetableLectures,
loading = false
)
}.onFailure {
updateLoading(false)
Timber.e("getTimetableLectures Remote Error Message : ${it.message}")
}
}
}
}
}

@@ -501,6 +527,7 @@ class TimetableViewModel @Inject constructor(
}

viewModelScope.launch {
updateLoading(true)
timetableRepository.postTimetableCustomLectures(
frameId = state.value.frameId,
lectures = customContentState.value.toLectures()
@@ -636,9 +663,10 @@ class TimetableViewModel @Inject constructor(

false -> {
viewModelScope.launch {
updateLoading(true)
addTimetableLectureUseCase(
frameId = state.value.frameId,
lectures = listOf(lecture) // TODO : updateTimetableLectures 함수 파라미터 lecture를 리스트로 변경 필요
lectures = listOf(lecture)
).onSuccess { timetableLectures ->
_state.value = _state.value.copy(
range = timetableLectures.formatTimeRange(),
@@ -691,8 +719,8 @@ class TimetableViewModel @Inject constructor(
}

false -> {
// TODO : 로그인 시, 강의 삭제 액션
viewModelScope.launch {
updateLoading(true)
deleteTimetableFrameLectureUseCase(
state.value.frameId,
lecture.id
@@ -707,13 +735,16 @@ class TimetableViewModel @Inject constructor(
etcClickedTimetableEvents = emptyList(),
selectedLecture = null,
timetableLectures = timetableLectures,
loading = false
)
}.onFailure {
// TODO : 강의 불러오기 실패
updateLoading(false)
Timber.e("getTimetableLectures Remote Error Message : ${it.message}")
}
}.onFailure {
// TODO : 강의 삭제 실패
updateLoading(false)
Timber.e("deleteTimetableLectureUseCase Remote Error Message : ${it.message}")
}
}
@@ -731,6 +762,7 @@ class TimetableViewModel @Inject constructor(
)

viewModelScope.launch {
updateLoading(true)
timetableRepository.putTimetableLectures(state.value.currentSemester, timetables)
.onSuccess { timetableLectures ->
_state.value = _state.value.copy(
@@ -741,6 +773,7 @@ class TimetableViewModel @Inject constructor(
etcClickedTimetableEvents = emptyList(),
bottomSheetCollapse = true,
selectedLecture = null,
loading = false
)
updateIsLectureDuplicationDialogVisible(false)
}.onFailure {
@@ -751,6 +784,7 @@ class TimetableViewModel @Inject constructor(
}
} else {
viewModelScope.launch {
updateLoading(true)
deleteTimetableLectureUseCase(id).onSuccess {
timetableRepository.getTimetableLectures(state.value.frameId)
.onSuccess { timetableLectures ->
@@ -763,13 +797,14 @@ class TimetableViewModel @Inject constructor(
bottomSheetCollapse = true,
selectedLecture = null,
timetableLectures = timetableLectures,
loading = false,
)
}.onFailure {
// TODO : 강의 불러오기 실패
updateLoading(false)
Timber.e("getTimetableLectures Remote Error Message : ${it.message}")
}
}.onFailure {
// TODO : 강의 삭제 실패
updateLoading(false)
Timber.e("removeTimetableLectureById Remote Error Message : ${it.message}")
}
}
@@ -778,6 +813,7 @@ class TimetableViewModel @Inject constructor(

private fun postLocalTimetableLectures(timetables: TimetableLectures) {
viewModelScope.launch {
updateLoading(true)
timetableRepository.putTimetableLectures(state.value.currentSemester, timetables)
.onSuccess { timetableLectures ->
_state.value = _state.value.copy(
@@ -787,6 +823,7 @@ class TimetableViewModel @Inject constructor(
clickedTimetableEvents = emptyList(),
etcClickedTimetableEvents = emptyList(),
selectedLecture = null,
loading = false
)
updateIsLectureDuplicationDialogVisible(false)
}.onFailure {