Skip to content

Commit fd9da40

Browse files
authored
Merge pull request #88 from FOR-GRAD/21-졸업-요건-ui
21 졸업 요건 UI
2 parents e4b3987 + 044d6ab commit fd9da40

File tree

63 files changed

+2429
-123
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+2429
-123
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package umc.com.mobile.project.data.model.plan
2+
3+
data class AddTimeResponse(
4+
val semesterDto: SemesterDto,
5+
val subjectDtoList: List<SubjectDtoList>,
6+
)
7+
8+
data class SemesterDto(
9+
val grade: Long,
10+
val semester: Long,
11+
)
12+
13+
data class SubjectDtoList(
14+
val type: String,
15+
val name: String,
16+
val credit: Long,
17+
)
18+
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package umc.com.mobile.project.data.model.plan
2+
3+
import java.time.LocalDateTime
4+
5+
data class BringlicenseResponse(
6+
val isSuccess: Boolean,
7+
val code: String,
8+
val message: String,
9+
val result: List<BringResult>,
10+
)
11+
12+
data class BringResult(
13+
val certificateId: Long,
14+
val createdAt: String,
15+
)
16+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package umc.com.mobile.project.data.model.plan
2+
3+
4+
5+
data class ListTimeResponse(
6+
val isSuccess: Boolean,
7+
val code: String,
8+
val message: String,
9+
val result: List<TimeResult>,
10+
)
11+
12+
data class TimeResult(
13+
val searchGrade: String,
14+
val searchType: String,
15+
val searchName: String,
16+
val searchCredit: String,
17+
)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package umc.com.mobile.project.data.model.plan
2+
3+
data class PlanTrackResponse(
4+
val isSuccess: Boolean,
5+
val code: String,
6+
val message: String,
7+
val result: List<TrackResult>,
8+
)
9+
10+
data class TrackResult(
11+
val trackCode: String,
12+
val trackName: String,
13+
)
14+
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package umc.com.mobile.project.data.model.plan
2+
3+
import java.time.LocalDate
4+
5+
6+
data class SaveInfo(
7+
val name: String,
8+
val date: String
9+
)
10+
11+
data class SavelicenseRequest(
12+
val info: List<SaveInfo>
13+
)
14+
15+
16+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package umc.com.mobile.project.data.model.plan
2+
3+
data class SemesterTimeResponse(
4+
val isSuccess: Boolean,
5+
val code: String,
6+
val message: String,
7+
val result: List<semesterResult>,
8+
) {
9+
10+
11+
}
12+
13+
data class semesterResult(
14+
val hakkiNum: String,
15+
val hakkiText: String,
16+
)
17+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package umc.com.mobile.project.data.model.plan
2+
3+
data class UPlicenseResponse(
4+
val isSuccess: Boolean,
5+
val code: String,
6+
val message: String,
7+
val result: List<Result>,
8+
)
9+
10+
data class Result(
11+
val certificateId: Long,
12+
val name: String,
13+
val date: String,
14+
)
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package umc.com.mobile.project.data.network.api
2+
3+
import retrofit2.http.GET
4+
import retrofit2.Call
5+
import retrofit2.http.Body
6+
import retrofit2.http.POST
7+
import retrofit2.http.Query
8+
import umc.com.mobile.project.data.model.plan.BringlicenseResponse
9+
import umc.com.mobile.project.data.model.plan.ListTimeResponse
10+
import umc.com.mobile.project.data.model.plan.PlanTrackResponse
11+
import umc.com.mobile.project.data.model.plan.SaveInfo
12+
import umc.com.mobile.project.data.model.plan.SemesterTimeResponse
13+
import umc.com.mobile.project.data.model.plan.UPlicenseResponse
14+
15+
16+
interface PlanApi {
17+
@GET("plans/certifications")
18+
fun getUPlicense(): Call<UPlicenseResponse>
19+
20+
21+
@POST("plans/certifications")
22+
fun saveLicense(@Body request: List<SaveInfo>): Call<BringlicenseResponse>
23+
24+
25+
26+
27+
@GET("/plans/timetable/searchSubject")
28+
fun getListTime(@Query("hakki") hakki:String, @Query("track") track : String) : Call<ListTimeResponse>
29+
30+
@GET("/plans/timetable/searchTrack")
31+
fun getTrackInfo(@Query("hakki") hakki: String) : Call<PlanTrackResponse>
32+
33+
@GET("/plans/timetable/searchHakki")
34+
fun getSemesterInfo():Call<SemesterTimeResponse>
35+
36+
37+
38+
}

app/src/main/java/umc/com/mobile/project/ui/gradInfo/GradeFragment.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ class GradeFragment : Fragment() {
3939
binding.tvSemester.text = selectedSemester
4040
})
4141

42+
viewModel.totalAverage.observe(viewLifecycleOwner, Observer { totalAverageGrade ->
43+
binding.tvAverageTotal.text = totalAverageGrade.toString()
44+
})
45+
4246
viewModel.selectedSemesterGradeAndGrades.observe(viewLifecycleOwner) { pair ->
4347
val selectedGrade = pair.first
4448
val gradesMap = pair.second

app/src/main/java/umc/com/mobile/project/ui/gradInfo/adapter/AverageRVAdapter.kt

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package umc.com.mobile.project.ui.gradInfo.adapter
22

3+
import android.app.AlertDialog
34
import androidx.recyclerview.widget.RecyclerView
45
import android.view.LayoutInflater
56
import android.view.ViewGroup
@@ -10,6 +11,7 @@ import umc.com.mobile.project.ui.gradInfo.viewmodel.GradeViewModel
1011
class AverageRVAdapter(private val viewModel: GradeViewModel) :
1112
RecyclerView.Adapter<AverageRVAdapter.MyViewHolder>() {
1213
private var dataList = mutableListOf<GradesTotalDto>()
14+
var totalAverageGrade = 0.0
1315

1416
inner class MyViewHolder(private val binding: ItemAverageGradeBinding) :
1517
RecyclerView.ViewHolder(binding.root) {
@@ -21,20 +23,32 @@ class AverageRVAdapter(private val viewModel: GradeViewModel) :
2123
val semesterGrade = "${position + 1} 학기 성적"
2224
viewModel.onSemesterItemClick(semester)
2325
viewModel.onSemesterGradeItemClick(semesterGrade)
26+
27+
val gradesTotalDto = dataList[position]
28+
if (gradesTotalDto.averageGrade == "0.0") {
29+
val alertDialogBuilder = AlertDialog.Builder(binding.root.context)
30+
alertDialogBuilder.setTitle("알림")
31+
alertDialogBuilder.setMessage("${position + 1} 학기의 성적이 아직 입력되지 않았습니다.")
32+
alertDialogBuilder.setPositiveButton("확인") { dialog, _ ->
33+
dialog.dismiss()
34+
}
35+
}
2436
}
2537
}
2638
}
2739

2840
fun bind(gradesTotalDto: GradesTotalDto, position: Int) {
29-
val count = if (position % 2 == 0) {
41+
val semester = if (position % 2 == 0) {
3042
1
3143
} else {
3244
2
3345
}
34-
val semester = if (position % 2 == 0) position / 2 + 1 else (position + 1) / 2
46+
val grade = if (position % 2 == 0) position / 2 + 1 else (position + 1) / 2
47+
// totalAverageGrade += Integer.parseInt(gradesTotalDto.averageGrade)
3548

36-
binding.tvSemesterContent1.text = "$semester - $count"
49+
binding.tvSemesterContent1.text = "$grade - $semester"
3750
binding.tvAverageGradeContent1.text = gradesTotalDto.averageGrade
51+
// viewModel.onSetTotalAverageGrade(totalAverageGrade, position+1)
3852
}
3953
}
4054

@@ -69,6 +83,7 @@ class AverageRVAdapter(private val viewModel: GradeViewModel) :
6983
)
7084
)
7185
}
86+
7287
notifyDataSetChanged()
7388
}
7489

0 commit comments

Comments
 (0)