Skip to content

Commit

Permalink
Merge branch 'main' into feat/#25
Browse files Browse the repository at this point in the history
  • Loading branch information
grootwo authored May 21, 2024
2 parents c2ac902 + f626c3a commit dea3211
Show file tree
Hide file tree
Showing 14 changed files with 491 additions and 159 deletions.
12 changes: 12 additions & 0 deletions MC2-Team3-Pilling.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
1B6530592BFB8A0C00452ACB /* LiveTimeWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1B6530492BFB8A0C00452ACB /* LiveTimeWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
1B65305E2BFB8ACD00452ACB /* LiveTimeAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B6530432BFB7C1600452ACB /* LiveTimeAttributes.swift */; };
21B273082BFB390C002BCC67 /* Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21B273072BFB390C002BCC67 /* Model.swift */; };
21B2730C2BFB7301002BCC67 /* SwiftDataTestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21B2730B2BFB7301002BCC67 /* SwiftDataTestView.swift */; };
21B2730E2BFB85E2002BCC67 /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21B2730D2BFB85E2002BCC67 /* Config.swift */; };
939C87E02BF307B600572EDC /* MC2_Team3_PillingApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 939C87DF2BF307B600572EDC /* MC2_Team3_PillingApp.swift */; };
939C87E22BF307B600572EDC /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 939C87E12BF307B600572EDC /* ContentView.swift */; };
939C87E42BF307B600572EDC /* Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = 939C87E32BF307B600572EDC /* Item.swift */; };
Expand All @@ -26,6 +28,7 @@
939C88322BF6B4AC00572EDC /* MedicineSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 939C88312BF6B4AC00572EDC /* MedicineSheetView.swift */; };
939C88362BF6B9BC00572EDC /* OnboardingSecondView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 939C88352BF6B9BC00572EDC /* OnboardingSecondView.swift */; };
939C88382BF6DF7000572EDC /* SplashScreenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 939C88372BF6DF7000572EDC /* SplashScreenView.swift */; };
939C88742BFBA01C00572EDC /* PopoverView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 939C88732BFBA01C00572EDC /* PopoverView.swift */; };
9B0411762BF593A0006F8BB9 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B0411752BF593A0006F8BB9 /* MainView.swift */; };
9BE4AA1D2BF6E280008BE893 /* CustomFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BE4AA1C2BF6E280008BE893 /* CustomFont.swift */; };
/* End PBXBuildFile section */
Expand Down Expand Up @@ -64,6 +67,8 @@
1B6530542BFB8A0C00452ACB /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
1B6530562BFB8A0C00452ACB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
21B273072BFB390C002BCC67 /* Model.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Model.swift; sourceTree = "<group>"; };
21B2730B2BFB7301002BCC67 /* SwiftDataTestView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftDataTestView.swift; sourceTree = "<group>"; };
21B2730D2BFB85E2002BCC67 /* Config.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Config.swift; sourceTree = "<group>"; };
939C87DC2BF307B600572EDC /* MC2-Team3-Pilling.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "MC2-Team3-Pilling.app"; sourceTree = BUILT_PRODUCTS_DIR; };
939C87DF2BF307B600572EDC /* MC2_Team3_PillingApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MC2_Team3_PillingApp.swift; sourceTree = "<group>"; };
939C87E12BF307B600572EDC /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
Expand All @@ -76,6 +81,7 @@
939C88312BF6B4AC00572EDC /* MedicineSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MedicineSheetView.swift; sourceTree = "<group>"; };
939C88352BF6B9BC00572EDC /* OnboardingSecondView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingSecondView.swift; sourceTree = "<group>"; };
939C88372BF6DF7000572EDC /* SplashScreenView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplashScreenView.swift; sourceTree = "<group>"; };
939C88732BFBA01C00572EDC /* PopoverView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PopoverView.swift; sourceTree = "<group>"; };
9B0411752BF593A0006F8BB9 /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = "<group>"; };
9BE4AA1C2BF6E280008BE893 /* CustomFont.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomFont.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
Expand Down Expand Up @@ -130,6 +136,8 @@
939C88352BF6B9BC00572EDC /* OnboardingSecondView.swift */,
939C882F2BF5CC9F00572EDC /* SettingView.swift */,
939C88372BF6DF7000572EDC /* SplashScreenView.swift */,
939C88732BFBA01C00572EDC /* PopoverView.swift */,
21B2730B2BFB7301002BCC67 /* SwiftDataTestView.swift */,
);
path = View;
sourceTree = "<group>";
Expand All @@ -140,6 +148,7 @@
1B6530432BFB7C1600452ACB /* LiveTimeAttributes.swift */,
939C87E32BF307B600572EDC /* Item.swift */,
21B273072BFB390C002BCC67 /* Model.swift */,
21B2730D2BFB85E2002BCC67 /* Config.swift */,
);
path = Model;
sourceTree = "<group>";
Expand Down Expand Up @@ -307,9 +316,12 @@
939C87E22BF307B600572EDC /* ContentView.swift in Sources */,
939C882E2BF5CC9100572EDC /* OnboardingFirstView.swift in Sources */,
9B0411762BF593A0006F8BB9 /* MainView.swift in Sources */,
21B2730E2BFB85E2002BCC67 /* Config.swift in Sources */,
21B273082BFB390C002BCC67 /* Model.swift in Sources */,
939C88362BF6B9BC00572EDC /* OnboardingSecondView.swift in Sources */,
939C88302BF5CC9F00572EDC /* SettingView.swift in Sources */,
939C88742BFBA01C00572EDC /* PopoverView.swift in Sources */,
21B2730C2BFB7301002BCC67 /* SwiftDataTestView.swift in Sources */,
939C87E42BF307B600572EDC /* Item.swift in Sources */,
9BE4AA1D2BF6E280008BE893 /* CustomFont.swift in Sources */,
939C88382BF6DF7000572EDC /* SplashScreenView.swift in Sources */,
Expand Down
17 changes: 3 additions & 14 deletions MC2-Team3-Pilling/MC2_Team3_PillingApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,12 @@ import SwiftData

@main
struct MC2_Team3_PillingApp: App {
var sharedModelContainer: ModelContainer = {
let schema = Schema([
Item.self,
])
let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false)

do {
return try ModelContainer(for: schema, configurations: [modelConfiguration])
} catch {
fatalError("Could not create ModelContainer: \(error)")
}
}()



var body: some Scene {
WindowGroup {
ContentView()
}
.modelContainer(sharedModelContainer)
.modelContainer(for:UserInfo.self)
}
}
88 changes: 88 additions & 0 deletions MC2-Team3-Pilling/Model/Config.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
//
// Config.swift
// MC2-Team3-Pilling
//
// Created by ram on 5/20/24.
//

import Foundation
import SwiftUI

class Config{
enum IntakeStatus: Int {
case notYet = 0 // .customgray
case onePill = 1 // .customgreen
case twoPills = 2 // .customgreen
case placebo = 3 // .white

var color: Color {
switch self {
case .notYet:
return .customGray
case .onePill, .twoPills:
return .customGreen
case .placebo:
return .white
}
}
}

enum StatusMessage: Int, CustomStringConvertible { //문구 변경 예정
case plantGrass = 0
case limitTwoHours = 1
case plantTwoGrass = 2
case grassGrowingWell = 3
case notRecording = 4

var description: String {
switch self {
case .plantGrass:
return "잔디를 심어주세요"
case .limitTwoHours:
return "잔디는 2시간을 초과하지 않게 심어주세요!"
case .plantTwoGrass:
return "2개의 잔디를 심어주세요"
case .grassGrowingWell:
return "잔디가 잘 자라고 있어요!"
case .notRecording:
return "기록을 안하고 계신가요?"
}
}
}

let days = ["", "", "", "", "", "", ""]
func DayDateToString(date: Date) -> String {
let format = "yyyy-MM-dd HH:mm:ss"
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = format
return dateFormatter.string(from: date)
}
func DayStringToDate(dateString: String) -> Date? {
let format = "yyyy-MM-dd HH:mm:ss"
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = format
return dateFormatter.date(from: dateString)
}
func AlarmDateToString(date: Date) -> String {
let format = "HH:mm"
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = format
return dateFormatter.string(from: date)
}
func AlarmStringToDate(dateString: String) -> Date? {
let format = "HH:mm"
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = format
return dateFormatter.date(from: dateString)
}



}
let myArray: [Int] = [1, 2 , 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3]
var colorArr:[Color] = [.customGray,.customGreen,.customGreen,.white]

36 changes: 21 additions & 15 deletions MC2-Team3-Pilling/Model/Model.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,51 +9,56 @@ import Foundation
import SwiftData

@Model
class UserInfo:Identifiable{
let id:UUID
var scheduleTime:DateComponents
final class UserInfo:Identifiable{
@Attribute(.unique) var id:UUID
var scheduleTime:String
var curPill:PeriodPill
var historyPill:[PeriodPill]
@Relationship var historyPill:[PeriodPill] = [PeriodPill]()
var isAlarm:Bool
var isSiri:Bool

init(scheduleTime: DateComponents, curPill: PeriodPill) {
init(scheduleTime: String, curPill: PeriodPill) {
self.id = UUID()
self.scheduleTime = scheduleTime
self.curPill = curPill
self.historyPill = []
self.isAlarm = false
self.isSiri = false
}



}

@Model
class PeriodPill:Identifiable{
let id:UUID
var pillInfo:PillInfo
var startIntake:DateComponents
var finishIntake:DateComponents?
final class PeriodPill:Identifiable{
@Attribute(.unique) let id:UUID
@Relationship var pillInfo:PillInfo
var startIntake:String
var finishIntake:String? = nil
var intakeCal:[Int]
var intakeCalTime:[String]
var missDay:Int

init(pillInfo: PillInfo, startIntake: DateComponents, finishIntake: DateComponents? = nil, intakeCal: [Int], missDay: Int) {
init(pillInfo: PillInfo, startIntake: String) {
self.id = UUID()
self.pillInfo = pillInfo
self.startIntake = startIntake
self.intakeCal = intakeCal
self.intakeCal = []
self.intakeCalTime = []
self.missDay = 0
}

}

@Model
class PillInfo:Identifiable{
let id:UUID
final class PillInfo:Identifiable{
@Attribute(.unique) let id:UUID
var pillName:String
var intakeDay:Int
var placeboDay:Int
var wholeDay:Int
var descriptionInfo:String? = nil
var type:String? = nil

init(pillName: String, intakeDay: Int, placeboDay: Int) {
self.id = UUID()
Expand All @@ -62,5 +67,6 @@ class PillInfo:Identifiable{
self.placeboDay = placeboDay
self.wholeDay = intakeDay+placeboDay
}

}

42 changes: 29 additions & 13 deletions MC2-Team3-Pilling/View/ContentView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,35 @@ struct ContentView: View {
return formatter
}()
@Environment(\.modelContext) private var modelContext
@Query private var items: [Item]

@State private var isTracking = false
@State private var alarmTime = dateFormatter.date(from: "\(Date.now.formatted(date: .numeric, time: .omitted))_23:00:00")!
@State private var activity: Activity<LiveTimeAttributes>? = nil

@Query private var user: [UserInfo] // 하나만 쓰고싶다면?

var body: some View {
NavigationStack{
NavigationLink(destination: MainView()){
Text("MainView")
VStack(spacing:20){
NavigationLink(destination: MainView()){
Text("MainView")
}

NavigationLink(destination: OnboardingFirstView()){
Text("OnboardingFirstView")
}
NavigationLink(destination: OnboardingSecondView()){
Text("OnboardingSecondView")
}
NavigationLink(destination: SwiftDataTestView()){
Text("SwiftDataTestView")
}

}
NavigationLink(destination: OnboardingFirstView()){
Text("OnboardingView")
NavigationLink(destination: SplashScreenView()){
Text("SplashScreenView")
}

Button(action: {
isTracking.toggle()
if isTracking {
Expand All @@ -54,21 +70,21 @@ struct ContentView: View {
}

}

private func addItem() {
withAnimation {
let newItem = Item(timestamp: Date())
modelContext.insert(newItem)
}
}

private func deleteItems(offsets: IndexSet) {
withAnimation {
for index in offsets {
modelContext.delete(items[index])
}
}
}
// private func deleteItems(offsets: IndexSet) {
// withAnimation {
// for index in offsets {
// modelContext.delete(items[index])
// }
// }
// }
}

#Preview {
Expand Down
Loading

0 comments on commit dea3211

Please sign in to comment.