diff --git a/Schedule ICTIS/Fonts/Montserrat-Black.ttf b/Schedule ICTIS/Fonts/Montserrat-Black.ttf new file mode 100755 index 0000000..f0d24ad Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-Black.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-BlackItalic.ttf b/Schedule ICTIS/Fonts/Montserrat-BlackItalic.ttf new file mode 100755 index 0000000..5ce4afc Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-BlackItalic.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-Bold.ttf b/Schedule ICTIS/Fonts/Montserrat-Bold.ttf new file mode 100755 index 0000000..9a425b9 Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-Bold.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-BoldItalic.ttf b/Schedule ICTIS/Fonts/Montserrat-BoldItalic.ttf new file mode 100755 index 0000000..ed61ca7 Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-BoldItalic.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-ExtraBold.ttf b/Schedule ICTIS/Fonts/Montserrat-ExtraBold.ttf new file mode 100755 index 0000000..6725d53 Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-ExtraBold.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-ExtraBoldItalic.ttf b/Schedule ICTIS/Fonts/Montserrat-ExtraBoldItalic.ttf new file mode 100755 index 0000000..107f98d Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-ExtraBoldItalic.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-ExtraLight.ttf b/Schedule ICTIS/Fonts/Montserrat-ExtraLight.ttf new file mode 100755 index 0000000..2967eb6 Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-ExtraLight.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-ExtraLightItalic.ttf b/Schedule ICTIS/Fonts/Montserrat-ExtraLightItalic.ttf new file mode 100755 index 0000000..5d62085 Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-ExtraLightItalic.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-Italic.ttf b/Schedule ICTIS/Fonts/Montserrat-Italic.ttf new file mode 100755 index 0000000..00fadbe Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-Italic.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-Light.ttf b/Schedule ICTIS/Fonts/Montserrat-Light.ttf new file mode 100755 index 0000000..a3cf5f5 Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-Light.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-LightItalic.ttf b/Schedule ICTIS/Fonts/Montserrat-LightItalic.ttf new file mode 100755 index 0000000..6dba219 Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-LightItalic.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-Medium.ttf b/Schedule ICTIS/Fonts/Montserrat-Medium.ttf new file mode 100755 index 0000000..db5b1af Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-Medium.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-MediumItalic.ttf b/Schedule ICTIS/Fonts/Montserrat-MediumItalic.ttf new file mode 100755 index 0000000..16dbf4c Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-MediumItalic.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-Regular.ttf b/Schedule ICTIS/Fonts/Montserrat-Regular.ttf new file mode 100755 index 0000000..2a2b2aa Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-Regular.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-SemiBold.ttf b/Schedule ICTIS/Fonts/Montserrat-SemiBold.ttf new file mode 100755 index 0000000..0ecc667 Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-SemiBold.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-SemiBoldItalic.ttf b/Schedule ICTIS/Fonts/Montserrat-SemiBoldItalic.ttf new file mode 100755 index 0000000..39f2393 Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-SemiBoldItalic.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-Thin.ttf b/Schedule ICTIS/Fonts/Montserrat-Thin.ttf new file mode 100755 index 0000000..6a394e7 Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-Thin.ttf differ diff --git a/Schedule ICTIS/Fonts/Montserrat-ThinItalic.ttf b/Schedule ICTIS/Fonts/Montserrat-ThinItalic.ttf new file mode 100755 index 0000000..8eeeaa4 Binary files /dev/null and b/Schedule ICTIS/Fonts/Montserrat-ThinItalic.ttf differ diff --git a/Schedule ICTIS/Main/Views/Fields/AuditoryFieldView.swift b/Schedule ICTIS/Main/Views/Fields/AuditoryFieldView.swift index 053abe0..0037a22 100644 --- a/Schedule ICTIS/Main/Views/Fields/AuditoryFieldView.swift +++ b/Schedule ICTIS/Main/Views/Fields/AuditoryFieldView.swift @@ -9,12 +9,11 @@ import SwiftUI struct AuditoryFieldView: View { @Binding var text: String - var nameOfImage: String var labelForField: String @FocusState var isFocused: Bool var body: some View { HStack(spacing: 0) { - Image(systemName: nameOfImage) + Image(systemName: "mappin.and.ellipse") .foregroundColor(Color.gray) .padding(.leading, 12) .padding(.trailing, 7) @@ -44,5 +43,5 @@ struct AuditoryFieldView: View { } #Preview { - ContentView() + AuditoryFieldView(text: .constant(""), labelForField: "Корпус-аудитория") } diff --git a/Schedule ICTIS/Main/Views/Fields/ProfessorFieldView.swift b/Schedule ICTIS/Main/Views/Fields/ProfessorFieldView.swift index 312425d..ff2d048 100644 --- a/Schedule ICTIS/Main/Views/Fields/ProfessorFieldView.swift +++ b/Schedule ICTIS/Main/Views/Fields/ProfessorFieldView.swift @@ -9,12 +9,11 @@ import SwiftUI struct ProfessorFieldView: View { @Binding var text: String - var nameOfImage: String var labelForField: String @FocusState var isFocused: Bool var body: some View { HStack(spacing: 0) { - Image(systemName: nameOfImage) + Image(systemName: "graduationcap") .foregroundColor(Color.gray) .padding(.leading, 12) .padding(.trailing, 7) @@ -44,5 +43,5 @@ struct ProfessorFieldView: View { } #Preview { - ContentView() + ProfessorFieldView(text: .constant(""), labelForField: "Преподаватель") } diff --git a/Schedule ICTIS/Main/Views/Fields/SubjectFieldView.swift b/Schedule ICTIS/Main/Views/Fields/SubjectFieldView.swift index d1d862d..10f1b22 100644 --- a/Schedule ICTIS/Main/Views/Fields/SubjectFieldView.swift +++ b/Schedule ICTIS/Main/Views/Fields/SubjectFieldView.swift @@ -10,12 +10,11 @@ import SwiftUI struct SubjectFieldView: View { @Binding var text: String @Binding var isShowingSubjectFieldRed: Bool - var nameOfImage: String @Binding var labelForField: String @FocusState var isFocused: Bool var body: some View { HStack(spacing: 0) { - Image(systemName: nameOfImage) + Image(systemName: "book") .foregroundColor(Color.gray) .padding(.leading, 12) .padding(.trailing, 7) @@ -62,5 +61,5 @@ struct SubjectFieldView: View { } #Preview { - ContentView() + SubjectFieldView(text: .constant(""), isShowingSubjectFieldRed: .constant(false), labelForField: .constant("Предмет")) } diff --git a/Schedule ICTIS/Main/Views/MainView.swift b/Schedule ICTIS/Main/Views/MainView.swift index b9b38bb..e45e675 100644 --- a/Schedule ICTIS/Main/Views/MainView.swift +++ b/Schedule ICTIS/Main/Views/MainView.swift @@ -11,10 +11,11 @@ struct MainView: View { @State private var searchText: String = "" @State private var isShowingMonthSlider: Bool = false @ObservedObject var vm: ScheduleViewModel + @FocusState private var isFocusedSearchBar: Bool var body: some View { VStack { - SearchBarView(text: $searchText, vm: vm) + SearchBarView(text: $searchText, isFocused: _isFocusedSearchBar, vm: vm) if (vm.isFirstStartOffApp && vm.isLoading) { LoadingView(isLoading: $vm.isLoading) @@ -33,6 +34,9 @@ struct MainView: View { Text(error.failureReason) } .background(Color("background")) + .onTapGesture { + isFocusedSearchBar = false + } } @ViewBuilder diff --git a/Schedule ICTIS/Main/Views/SearchBarView.swift b/Schedule ICTIS/Main/Views/SearchBarView.swift index ae2bbd5..cafa5be 100644 --- a/Schedule ICTIS/Main/Views/SearchBarView.swift +++ b/Schedule ICTIS/Main/Views/SearchBarView.swift @@ -9,7 +9,7 @@ import SwiftUI struct SearchBarView: View { @Binding var text: String - @FocusState private var isFocused: Bool + @FocusState var isFocused: Bool @State private var isShowingSheet: Bool = false @ObservedObject var vm: ScheduleViewModel diff --git a/Schedule ICTIS/Main/Views/Sheets/CreateEditClassView.swift b/Schedule ICTIS/Main/Views/Sheets/CreateEditClassView.swift index 6f7086c..0691a4b 100644 --- a/Schedule ICTIS/Main/Views/Sheets/CreateEditClassView.swift +++ b/Schedule ICTIS/Main/Views/Sheets/CreateEditClassView.swift @@ -27,7 +27,7 @@ struct CreateEditClassView: View { NavigationView { ScrollView(.vertical, showsIndicators: false) { VStack { - SubjectFieldView(text: $vm._class.subject, isShowingSubjectFieldRed: $isShowingSubjectFieldRed, nameOfImage: "book", labelForField: $textForLabelInSubjectField, isFocused: _isFocusedSubject) + SubjectFieldView(text: $vm._class.subject, isShowingSubjectFieldRed: $isShowingSubjectFieldRed, labelForField: $textForLabelInSubjectField, isFocused: _isFocusedSubject) .padding(.bottom, 10) HStack { Text("Тип") @@ -50,7 +50,7 @@ struct CreateEditClassView: View { ZStack { if vm._class.online == "Оффлайн" { - AuditoryFieldView(text: $vm._class.auditory, nameOfImage: "mappin.and.ellipse", labelForField: "Корпус-аудитория", isFocused: _isFocusedAuditory) + AuditoryFieldView(text: $vm._class.auditory, labelForField: "Корпус-аудитория", isFocused: _isFocusedAuditory) .padding(.bottom, 10) .transition(.asymmetric( insertion: .offset(y: -50).combined(with: .identity), @@ -65,7 +65,7 @@ struct CreateEditClassView: View { value: vm._class.online ) - ProfessorFieldView(text: $vm._class.professor, nameOfImage: "book", labelForField: "Преподаватель", isFocused: _isFocusedProfessor) + ProfessorFieldView(text: $vm._class.professor, labelForField: "Преподаватель", isFocused: _isFocusedProfessor) .padding(.bottom, 10) HStack { @@ -108,14 +108,6 @@ struct CreateEditClassView: View { self.isIncorrectDate2 = false } } -// .overlay { -// if isIncorrectDate1 { -// Rectangle() -// .frame(maxWidth: 300, maxHeight: 1) -// .foregroundColor(.red) -// .padding(.horizontal) -// } -// } Spacer() StartEndTimeFieldView(isIncorrectDate: $isIncorrectDate2, selectedDay: $vm._class.day, selectedTime: $vm._class.endtime, imageName: "clock.badge.xmark", text: "Конец", isTimeSelected: $isSelectedTime2) .onChange(of: vm._class.endtime) { oldValue, newValue in @@ -131,14 +123,6 @@ struct CreateEditClassView: View { self.isIncorrectDate2 = false } } -// .overlay { -// if isIncorrectDate2 { -// Rectangle() -// .frame(maxWidth: 300, maxHeight: 1) -// .foregroundColor(.red) -// .padding(.horizontal) -// } -// } } .frame(height: 40) .padding(.bottom, 10) @@ -238,8 +222,20 @@ struct CreateEditClassView: View { .navigationTitle(vm.isNew ? "Новая пара" : "Изменить данные") .background(Color("background")) .onAppear { - if day >= Calendar.current.startOfDay(for: Date()) { + let temp = Calendar.current.date(byAdding: .hour, value: 1, to: Date.init()) + if let endTime = temp { + if (!hoursMinutesAreEqual(date1: vm._class.starttime, isEqualTo: Date()) && !hoursMinutesAreEqual(date1: vm._class.endtime, isEqualTo: endTime)) { + self.isSelectedTime1 = true + self.isSelectedTime2 = true + print(vm._class.starttime) + print(vm._class.endtime) + print(endTime) + print(Date()) + } + } + if day > Calendar.current.startOfDay(for: Date()) { vm._class.day = day + print(34) } } .onTapGesture { diff --git a/Schedule ICTIS/Main/Views/TabViews/WeekTabView.swift b/Schedule ICTIS/Main/Views/TabViews/WeekTabView.swift index efabf69..31e967d 100644 --- a/Schedule ICTIS/Main/Views/TabViews/WeekTabView.swift +++ b/Schedule ICTIS/Main/Views/TabViews/WeekTabView.swift @@ -2,7 +2,7 @@ // WeekTabView.swift // Schedule ICTIS // -// Created by G412 on 10.12.2024. +// Created by Mironov Egor on 10.12.2024. // import SwiftUI diff --git a/Schedule ICTIS/Main/Views/TabViews/WeekViewForMonth.swift b/Schedule ICTIS/Main/Views/TabViews/WeekViewForMonth.swift index e274f31..ed493d7 100644 --- a/Schedule ICTIS/Main/Views/TabViews/WeekViewForMonth.swift +++ b/Schedule ICTIS/Main/Views/TabViews/WeekViewForMonth.swift @@ -2,7 +2,7 @@ // WeekViewForMonth.swift // Schedule ICTIS // -// Created by G412 on 20.12.2024. +// Created by Mironov Egor on 20.12.2024. // import SwiftUI diff --git a/Schedule ICTIS/Main/Views/TabViews/WeekViewForWeek.swift b/Schedule ICTIS/Main/Views/TabViews/WeekViewForWeek.swift index b8978e2..2617ce9 100644 --- a/Schedule ICTIS/Main/Views/TabViews/WeekViewForWeek.swift +++ b/Schedule ICTIS/Main/Views/TabViews/WeekViewForWeek.swift @@ -2,7 +2,7 @@ // WeekView.swift // Schedule ICTIS // -// Created by G412 on 20.12.2024. +// Created by Mironov Egor on 20.12.2024. // import SwiftUI diff --git a/Schedule ICTIS/Preview Content/Assets.xcassets/auditoryImage.imageset/Contents.json b/Schedule ICTIS/Preview Content/Assets.xcassets/auditoryImage.imageset/Contents.json new file mode 100644 index 0000000..0d905b9 --- /dev/null +++ b/Schedule ICTIS/Preview Content/Assets.xcassets/auditoryImage.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "auditoryImage.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Schedule ICTIS/Preview Content/Assets.xcassets/auditoryImage.imageset/auditoryImage.png b/Schedule ICTIS/Preview Content/Assets.xcassets/auditoryImage.imageset/auditoryImage.png new file mode 100644 index 0000000..6952f6a Binary files /dev/null and b/Schedule ICTIS/Preview Content/Assets.xcassets/auditoryImage.imageset/auditoryImage.png differ diff --git a/Schedule ICTIS/Preview Content/Assets.xcassets/bookImage.imageset/Contents.json b/Schedule ICTIS/Preview Content/Assets.xcassets/bookImage.imageset/Contents.json new file mode 100644 index 0000000..83777ce --- /dev/null +++ b/Schedule ICTIS/Preview Content/Assets.xcassets/bookImage.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "bookImage.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Schedule ICTIS/Preview Content/Assets.xcassets/bookImage.imageset/bookImage.png b/Schedule ICTIS/Preview Content/Assets.xcassets/bookImage.imageset/bookImage.png new file mode 100644 index 0000000..dd06b99 Binary files /dev/null and b/Schedule ICTIS/Preview Content/Assets.xcassets/bookImage.imageset/bookImage.png differ diff --git a/Schedule ICTIS/Preview Content/Assets.xcassets/professorHatImage.imageset/Contents.json b/Schedule ICTIS/Preview Content/Assets.xcassets/professorHatImage.imageset/Contents.json new file mode 100644 index 0000000..351e621 --- /dev/null +++ b/Schedule ICTIS/Preview Content/Assets.xcassets/professorHatImage.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "professorHatImage.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Schedule ICTIS/Preview Content/Assets.xcassets/professorHatImage.imageset/professorHatImage.png b/Schedule ICTIS/Preview Content/Assets.xcassets/professorHatImage.imageset/professorHatImage.png new file mode 100644 index 0000000..cbee224 Binary files /dev/null and b/Schedule ICTIS/Preview Content/Assets.xcassets/professorHatImage.imageset/professorHatImage.png differ diff --git a/Schedule ICTIS/Utilities/Extensions/View+Extensions.swift b/Schedule ICTIS/Utilities/Extensions/View+Extensions.swift index e43352d..0de3a0c 100644 --- a/Schedule ICTIS/Utilities/Extensions/View+Extensions.swift +++ b/Schedule ICTIS/Utilities/Extensions/View+Extensions.swift @@ -71,6 +71,15 @@ extension View { } } + func hoursMinutesAreEqual(date1: Date, isEqualTo date2: Date) -> Bool { + let calendar = Calendar.current + + let components1 = calendar.dateComponents([.day, .hour, .minute], from: date1) + let components2 = calendar.dateComponents([.day, .hour, .minute], from: date2) + + return components1.day == components2.day && components1.hour == components2.hour && components1.minute == components2.minute + } + // MARK: ScheduleView func daysAreEqual(_ date1: Date, _ date2: Date) -> Bool { let calendar = Calendar.current diff --git a/Schedule-ICTIS-Info.plist b/Schedule-ICTIS-Info.plist new file mode 100644 index 0000000..05f71a6 --- /dev/null +++ b/Schedule-ICTIS-Info.plist @@ -0,0 +1,38 @@ + + + + + UIAppFonts + + Montserrat-Black.ttf + Montserrat-BlackItalic.ttf + Montserrat-Bold.ttf + Montserrat-BoldItalic.ttf + Montserrat-ExtraBold.ttf + Montserrat-ExtraBoldItalic.ttf + Montserrat-ExtraLight.ttf + Montserrat-ExtraLightItalic.ttf + Montserrat-Italic.ttf + Montserrat-Light.ttf + Montserrat-LightItalic.ttf + Montserrat-Medium.ttf + Montserrat-MediumItalic.ttf + Montserrat-Regular.ttf + Montserrat-SemiBold.ttf + Montserrat-SemiBoldItalic.ttf + Montserrat-Thin.ttf + Montserrat-ThinItalic.ttf + + UTImportedTypeDeclarations + + + UTTypeIconFiles + + UTTypeIdentifier + + UTTypeTagSpecification + + + + +