Skip to content

Commit

Permalink
Feat: 졸업 요건 viewPager 스와이프 막음 #21
Browse files Browse the repository at this point in the history
  • Loading branch information
dkyuuum committed Feb 8, 2024
1 parent 129bdee commit 8d0f59f
Show file tree
Hide file tree
Showing 5 changed files with 368 additions and 275 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,30 @@ data class CompletionResponse(
val result: Results
)

/*data class CompletionResponse(
@SerializedName("completionDtoMap") val completionDtoMap: CompletionDtoMap
)
data class CompletionDtoMap(
@SerializedName("교양 - 이수한 학점 (필수이수학점)") val liberalArts: LiberalArts,
@SerializedName("전공 - 이수한 학점 (필수이수학점)") val major: Major
)
data class LiberalArts(
@SerializedName("필수(기초)교양") val requiredBasic: List<Course>,
@SerializedName("토대교양") val fundamental: List<Course>,
@SerializedName("소 계") val subtotal: List<Course>,
@SerializedName("thead") val thead: List<String>
)
data class Major(
@SerializedName("제1트랙") val firstTrack: List<String>,
@SerializedName("제2트랙") val secondTrack: List<String>,
@SerializedName("부전공 부전공 - micro college") val minor: List<String>,
@SerializedName("thead") val thead: List<String>
)
data class Course(
@SerializedName("교과목") val courseName: String,
@SerializedName("학점") val credit: String
)*/
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,24 @@ class CompletionStateFragment : Fragment() {
binding.tvTrack21Content.text = it?.result?.majorCompletionDto?.majorMap?.track2?.get(0).toString()
binding.tvTrack22Content.text = it?.result?.majorCompletionDto?.majorMap?.track2?.get(1).toString()
binding.tvTrack23Content.text = it?.result?.majorCompletionDto?.majorMap?.track2?.get(2).toString()

})
//
// viewModel.completionInfo.observe(viewLifecycleOwner, Observer { completionResponse ->
// completionResponse?.let {
// // general
// binding.tvTotalScore.text = it.completionDtoMap.liberalArts.subtotal.firstOrNull()?.credit ?: ""
//
// // major
// binding.tvTrack11Content.text = it.completionDtoMap.major.firstTrack.getOrNull(0) ?: ""
// binding.tvTrack12Content.text = it.completionDtoMap.major.firstTrack.getOrNull(1) ?: ""
// binding.tvTrack13Content.text = it.completionDtoMap.major.firstTrack.getOrNull(2) ?: ""
// binding.tvTrack21Content.text = it.completionDtoMap.major.secondTrack.getOrNull(0) ?: ""
// binding.tvTrack22Content.text = it.completionDtoMap.major.secondTrack.getOrNull(1) ?: ""
// binding.tvTrack23Content.text = it.completionDtoMap.major.secondTrack.getOrNull(2) ?: ""
// }
// })


viewModel.foundationElectiveCourses?.observe(viewLifecycleOwner, Observer { courses ->
val coursesList = courses.entries.toList()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.lifecycle.Observer
import androidx.viewpager.widget.ViewPager
import androidx.viewpager2.widget.ViewPager2
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator
Expand All @@ -30,6 +31,7 @@ class GradInfoFragment : Fragment() {
_binding = FragmentGradInfoBinding.inflate(inflater, container, false)

initTabLayout()
initViewPager()

return binding.root
}
Expand All @@ -53,6 +55,28 @@ class GradInfoFragment : Fragment() {
) { tab, position -> tab.text = tabTitle[position] }.attach()
}

private fun initViewPager() {
/*binding.viewPagerGradInfo.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
// 이 메서드는 페이지 스크롤이 발생할 때 호출됩니다.
// 스와이프를 막으려면 여기에 해당 페이지로 이동시키는 로직을 구현합니다.
}
override fun onPageSelected(position: Int) {
// 이 메서드는 새 페이지가 선택될 때 호출됩니다.
// 필요에 따라 추가적인 동작을 수행할 수 있습니다.
}
override fun onPageScrollStateChanged(state: Int) {
// 페이지 스크롤의 상태가 변경될 때 호출됩니다.
// 필요에 따라 추가적인 동작을 수행할 수 있습니다.
}
})*/

binding.viewPagerGradInfo.isUserInputEnabled = false
}


override fun onDestroyView() {
super.onDestroyView()
_binding = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,30 +33,53 @@ class CompletionStateViewModel : ViewModel() {
val foundationElectiveCourses: MutableLiveData<Map<String, String>>
get() = _foundationElectiveCourses

private fun processRequiredBasicCourses(completionResponse: CompletionResponse) {
val requiredBasicCoursesMap = mutableMapOf<String, String>()
val foundationElectiveCoursesMap = mutableMapOf<String, String>()
private fun processRequiredBasicCourses(completionResponse: CompletionResponse) {
val requiredBasicCoursesMap = mutableMapOf<String, String>()
val foundationElectiveCoursesMap = mutableMapOf<String, String>()

val requiredBasicCourses = completionResponse?.result?.generalCompletionDto?.generalMap?.requiredBasicCourses
val foundationElectiveCourses = completionResponse?.result?.generalCompletionDto?.generalMap?.foundationElectiveCourses
val requiredBasicCourses = completionResponse?.result?.generalCompletionDto?.generalMap?.requiredBasicCourses
val foundationElectiveCourses = completionResponse?.result?.generalCompletionDto?.generalMap?.foundationElectiveCourses

requiredBasicCourses?.let {
for ((courseName, courseStatus) in it) {
requiredBasicCoursesMap[courseName] = courseStatus
Log.d("Completion: requiredBasicCoursesMap ", "$courseName : $courseStatus")
requiredBasicCourses?.let {
for ((courseName, courseStatus) in it) {
requiredBasicCoursesMap[courseName] = courseStatus
Log.d("Completion: requiredBasicCoursesMap ", "$courseName : $courseStatus")
}
}
}

foundationElectiveCourses?.let {
for ((courseName, courseStatus) in it) {
foundationElectiveCoursesMap[courseName] = courseStatus
Log.d("Completion: foundationElectiveCoursesMap ", "$courseName : $courseStatus")
foundationElectiveCourses?.let {
for ((courseName, courseStatus) in it) {
foundationElectiveCoursesMap[courseName] = courseStatus
Log.d("Completion: foundationElectiveCoursesMap ", "$courseName : $courseStatus")
}
}
}

_requiredBasicCourses.postValue(requiredBasicCoursesMap)
_foundationElectiveCourses.postValue(foundationElectiveCoursesMap)
}
_requiredBasicCourses.postValue(requiredBasicCoursesMap)
_foundationElectiveCourses.postValue(foundationElectiveCoursesMap)
}
// private fun processRequiredBasicCourses(completionResponse: CompletionResponse) {
// val requiredBasicCoursesMap = mutableMapOf<String, String>()
// val foundationElectiveCoursesMap = mutableMapOf<String, String>()
//
// completionResponse.completionDtoMap.liberalArts.requiredBasic.forEachIndexed { index, course ->
// requiredBasicCoursesMap[course.courseName] = course.credit
// Log.d(
// "Completion: requiredBasicCoursesMap ",
// "$index: ${course.courseName} : ${course.credit}"
// )
// }
//
// completionResponse.completionDtoMap.liberalArts.fundamental.forEachIndexed { index, course ->
// foundationElectiveCoursesMap[course.courseName] = course.credit
// Log.d(
// "Completion: foundationElectiveCoursesMap ",
// "$index: ${course.courseName} : ${course.credit}"
// )
// }
//
// _requiredBasicCourses.postValue(requiredBasicCoursesMap)
// _foundationElectiveCourses.postValue(foundationElectiveCoursesMap)
// }

fun getCompletionInfo() {
gradInfoApiService.getCompletion().enqueue(object : Callback<CompletionResponse> {
Expand Down
Loading

0 comments on commit 8d0f59f

Please sign in to comment.