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
+ }
+ }
}