diff --git a/Android/app/proguard-rules.pro b/Android/app/proguard-rules.pro index bab28bf..3aafbfd 100644 --- a/Android/app/proguard-rules.pro +++ b/Android/app/proguard-rules.pro @@ -8,3 +8,6 @@ -keep class * implements skip.bridge.** { *; } -keep class **._ModuleBundleAccessor_* { *; } -keep class pi.ckadmin.** { *; } +-dontwarn kotlin.reflect.full.KClasses +-dontwarn kotlin.reflect.full.KTypes +-dontwarn kotlin.reflect.jvm.KTypesJvm diff --git a/Android/app/src/main/AndroidManifest.xml b/Android/app/src/main/AndroidManifest.xml index 0223487..fde1871 100644 --- a/Android/app/src/main/AndroidManifest.xml +++ b/Android/app/src/main/AndroidManifest.xml @@ -7,6 +7,8 @@ + + diff --git a/Sources/PiCKAdmin/Features/BugReport/ViewModels/BugReportViewModel.swift b/Sources/PiCKAdmin/Features/BugReport/ViewModels/BugReportViewModel.swift index 635e69c..5d1aa04 100644 --- a/Sources/PiCKAdmin/Features/BugReport/ViewModels/BugReportViewModel.swift +++ b/Sources/PiCKAdmin/Features/BugReport/ViewModels/BugReportViewModel.swift @@ -83,8 +83,8 @@ final class BugReportViewModel { bodyData.append("--\(boundary)--\r\n".data(using: .utf8)!) let endpoint = BugReportAPI.uploadImages(boundary: boundary, body: bodyData) - let response = try await APIClient.shared.request(endpoint, responseType: [String].self) - return response + let response = try await APIClient.shared.request(endpoint, responseType: ImageUploadResponse.self) + return response.fileNames } private func submitReport(fileNames: [String]) async throws { diff --git a/Sources/PiCKAdmin/Features/SelfStudyCheck/Components/SelfStudyCheckComponents.swift b/Sources/PiCKAdmin/Features/SelfStudyCheck/Components/SelfStudyCheckComponents.swift index 1b7cec2..07c39de 100644 --- a/Sources/PiCKAdmin/Features/SelfStudyCheck/Components/SelfStudyCheckComponents.swift +++ b/Sources/PiCKAdmin/Features/SelfStudyCheck/Components/SelfStudyCheckComponents.swift @@ -22,9 +22,16 @@ struct StudentAttendanceCell: View { .pickText(type: .body2, textColor: statusColor(student.status)) .padding(.horizontal, 16) .padding(.vertical, 8) - .background(statusBackgroundColor(student.status)) - .cornerRadius(8) + .background( + RoundedRectangle(cornerRadius: 8) + .fill(statusBackgroundColor(student.status)) + ) + .overlay( + RoundedRectangle(cornerRadius: 8) + .stroke(statusBorderColor(student.status), lineWidth: 1) + ) } + .buttonStyle(.plain) } .padding(.vertical, 12) .padding(.horizontal, 16) @@ -36,13 +43,13 @@ struct StudentAttendanceCell: View { private func statusColor(_ status: String) -> Color { switch status { case "출석": - return .Primary.primary500 + return .Normal.white case "이동": - return .Gray.gray700 + return .Normal.white case "귀가", "외출": - return .Primary.primary400 + return .Error.error case "현체", "취업": - return .Gray.gray600 + return .Gray.gray900 default: return .Normal.black } @@ -51,15 +58,30 @@ struct StudentAttendanceCell: View { private func statusBackgroundColor(_ status: String) -> Color { switch status { case "출석": - return .Primary.primary50 + return .Primary.primary500 case "이동": - return .Gray.gray100 + return .Gray.gray700 case "귀가", "외출": - return .Primary.primary50.opacity(0.5) + return .Error.errorLight case "현체", "취업": - return .Gray.gray100 + return .Gray.gray200 default: return .Gray.gray100 } } + + private func statusBorderColor(_ status: String) -> Color { + switch status { + case "출석": + return .Primary.primary500 + case "이동": + return .Gray.gray700 + case "귀가", "외출": + return .Error.error + case "현체", "취업": + return .Gray.gray600 + default: + return .Gray.gray400 + } + } }