Skip to content

Commit 1d8cfbf

Browse files
committed
Code cleanup, reformat example app
1 parent 2154298 commit 1d8cfbf

2 files changed

Lines changed: 184 additions & 188 deletions

File tree

CalendarKitDemo/CalendarApp/CustomCalendarExampleController.swift

Lines changed: 184 additions & 184 deletions
Original file line numberDiff line numberDiff line change
@@ -2,194 +2,194 @@ import UIKit
22
import CalendarKit
33

44
final class CustomCalendarExampleController: DayViewController {
5-
var data = [["Breakfast at Tiffany's",
6-
"New York, 5th avenue"],
7-
8-
["Workout",
9-
"Tufteparken"],
10-
11-
["Meeting with Alex",
12-
"Home",
13-
"Oslo, Tjuvholmen"],
14-
15-
["Beach Volleyball",
16-
"Ipanema Beach",
17-
"Rio De Janeiro"],
18-
19-
["WWDC",
20-
"Moscone West Convention Center",
21-
"747 Howard St"],
22-
23-
["Google I/O",
24-
"Shoreline Amphitheatre",
25-
"One Amphitheatre Parkway"],
26-
27-
["✈️️ to Svalbard ❄️️❄️️❄️️❤️️",
28-
"Oslo Gardermoen"],
29-
30-
["💻📲 Developing CalendarKit",
31-
"🌍 Worldwide"],
32-
33-
["Software Development Lecture",
34-
"Mikpoli MB310",
35-
"Craig Federighi"],
36-
37-
]
38-
39-
var generatedEvents = [EventDescriptor]()
40-
var alreadyGeneratedSet = Set<Date>()
41-
42-
var colors = [UIColor.blue,
43-
UIColor.yellow,
44-
UIColor.green,
45-
UIColor.red]
46-
47-
private lazy var dateIntervalFormatter: DateIntervalFormatter = {
48-
let dateIntervalFormatter = DateIntervalFormatter()
49-
dateIntervalFormatter.dateStyle = .none
50-
dateIntervalFormatter.timeStyle = .short
51-
52-
return dateIntervalFormatter
53-
}()
54-
55-
override func loadView() {
56-
calendar.timeZone = TimeZone(identifier: "Europe/Paris")!
57-
58-
dayView = DayView(calendar: calendar)
59-
view = dayView
60-
}
61-
62-
override func viewDidLoad() {
63-
super.viewDidLoad()
64-
title = "CalendarKit Demo"
65-
navigationController?.navigationBar.isTranslucent = false
66-
dayView.autoScrollToFirstEvent = true
67-
reloadData()
68-
}
69-
70-
// MARK: EventDataSource
71-
72-
override func eventsForDate(_ date: Date) -> [EventDescriptor] {
73-
if !alreadyGeneratedSet.contains(date) {
74-
alreadyGeneratedSet.insert(date)
75-
generatedEvents.append(contentsOf: generateEventsForDate(date))
5+
var data = [["Breakfast at Tiffany's",
6+
"New York, 5th avenue"],
7+
8+
["Workout",
9+
"Tufteparken"],
10+
11+
["Meeting with Alex",
12+
"Home",
13+
"Oslo, Tjuvholmen"],
14+
15+
["Beach Volleyball",
16+
"Ipanema Beach",
17+
"Rio De Janeiro"],
18+
19+
["WWDC",
20+
"Moscone West Convention Center",
21+
"747 Howard St"],
22+
23+
["Google I/O",
24+
"Shoreline Amphitheatre",
25+
"One Amphitheatre Parkway"],
26+
27+
["✈️️ to Svalbard ❄️️❄️️❄️️❤️️",
28+
"Oslo Gardermoen"],
29+
30+
["💻📲 Developing CalendarKit",
31+
"🌍 Worldwide"],
32+
33+
["Software Development Lecture",
34+
"Mikpoli MB310",
35+
"Craig Federighi"],
36+
37+
]
38+
39+
var generatedEvents = [EventDescriptor]()
40+
var alreadyGeneratedSet = Set<Date>()
41+
42+
var colors = [UIColor.blue,
43+
UIColor.yellow,
44+
UIColor.green,
45+
UIColor.red]
46+
47+
private lazy var dateIntervalFormatter: DateIntervalFormatter = {
48+
let dateIntervalFormatter = DateIntervalFormatter()
49+
dateIntervalFormatter.dateStyle = .none
50+
dateIntervalFormatter.timeStyle = .short
51+
52+
return dateIntervalFormatter
53+
}()
54+
55+
override func loadView() {
56+
calendar.timeZone = TimeZone(identifier: "Europe/Paris")!
57+
58+
dayView = DayView(calendar: calendar)
59+
view = dayView
60+
}
61+
62+
override func viewDidLoad() {
63+
super.viewDidLoad()
64+
title = "CalendarKit Demo"
65+
navigationController?.navigationBar.isTranslucent = false
66+
dayView.autoScrollToFirstEvent = true
67+
reloadData()
68+
}
69+
70+
// MARK: EventDataSource
71+
72+
override func eventsForDate(_ date: Date) -> [EventDescriptor] {
73+
if !alreadyGeneratedSet.contains(date) {
74+
alreadyGeneratedSet.insert(date)
75+
generatedEvents.append(contentsOf: generateEventsForDate(date))
76+
}
77+
return generatedEvents
78+
}
79+
80+
private func generateEventsForDate(_ date: Date) -> [EventDescriptor] {
81+
var workingDate = Calendar.current.date(byAdding: .hour, value: Int.random(in: 1...15), to: date)!
82+
var events = [Event]()
83+
84+
for i in 0...4 {
85+
let event = Event()
86+
87+
let duration = Int.random(in: 60 ... 160)
88+
event.dateInterval = DateInterval(start: workingDate, duration: TimeInterval(duration * 60))
89+
90+
var info = data.randomElement() ?? []
91+
92+
let timezone = dayView.calendar.timeZone
93+
print(timezone)
94+
95+
info.append(dateIntervalFormatter.string(from: event.dateInterval.start, to: event.dateInterval.end))
96+
event.text = info.reduce("", {$0 + $1 + "\n"})
97+
event.color = colors.randomElement() ?? .red
98+
event.isAllDay = Bool.random()
99+
event.lineBreakMode = .byTruncatingTail
100+
101+
events.append(event)
102+
103+
let nextOffset = Int.random(in: 40 ... 250)
104+
workingDate = Calendar.current.date(byAdding: .minute, value: nextOffset, to: workingDate)!
105+
event.userInfo = String(i)
106+
}
107+
108+
print("Events for \(date)")
109+
return events
110+
}
111+
112+
// MARK: DayViewDelegate
113+
114+
private var createdEvent: EventDescriptor?
115+
116+
override func dayViewDidSelectEventView(_ eventView: EventView) {
117+
guard let descriptor = eventView.descriptor as? Event else {
118+
return
119+
}
120+
print("Event has been selected: \(descriptor) \(String(describing: descriptor.userInfo))")
121+
}
122+
123+
override func dayViewDidLongPressEventView(_ eventView: EventView) {
124+
guard let descriptor = eventView.descriptor as? Event else {
125+
return
126+
}
127+
endEventEditing()
128+
print("Event has been longPressed: \(descriptor) \(String(describing: descriptor.userInfo))")
129+
beginEditing(event: descriptor, animated: true)
130+
print(Date())
131+
}
132+
133+
override func dayView(dayView: DayView, didTapTimelineAt date: Date) {
134+
endEventEditing()
135+
print("Did Tap at date: \(date)")
136+
}
137+
138+
override func dayViewDidBeginDragging(dayView: DayView) {
139+
endEventEditing()
140+
print("DayView did begin dragging")
76141
}
77-
return generatedEvents
78-
}
79-
80-
private func generateEventsForDate(_ date: Date) -> [EventDescriptor] {
81-
var workingDate = Calendar.current.date(byAdding: .hour, value: Int.random(in: 1...15), to: date)!
82-
var events = [Event]()
83-
84-
for i in 0...4 {
85-
let event = Event()
86-
87-
let duration = Int.random(in: 60 ... 160)
88-
event.dateInterval = DateInterval(start: workingDate, duration: TimeInterval(duration * 60))
89-
90-
var info = data.randomElement() ?? []
91-
92-
let timezone = dayView.calendar.timeZone
93-
print(timezone)
94-
95-
info.append(dateIntervalFormatter.string(from: event.dateInterval.start, to: event.dateInterval.end))
96-
event.text = info.reduce("", {$0 + $1 + "\n"})
97-
event.color = colors.randomElement() ?? .red
98-
event.isAllDay = Bool.random()
99-
event.lineBreakMode = .byTruncatingTail
100-
101-
events.append(event)
102-
103-
let nextOffset = Int.random(in: 40 ... 250)
104-
workingDate = Calendar.current.date(byAdding: .minute, value: nextOffset, to: workingDate)!
105-
event.userInfo = String(i)
142+
143+
override func dayView(dayView: DayView, willMoveTo date: Date) {
144+
print("DayView = \(dayView) will move to: \(date)")
106145
}
107-
108-
print("Events for \(date)")
109-
return events
110-
}
111-
112-
// MARK: DayViewDelegate
113-
114-
private var createdEvent: EventDescriptor?
115-
116-
override func dayViewDidSelectEventView(_ eventView: EventView) {
117-
guard let descriptor = eventView.descriptor as? Event else {
118-
return
146+
147+
override func dayView(dayView: DayView, didMoveTo date: Date) {
148+
print("DayView = \(dayView) did move to: \(date)")
119149
}
120-
print("Event has been selected: \(descriptor) \(String(describing: descriptor.userInfo))")
121-
}
122-
123-
override func dayViewDidLongPressEventView(_ eventView: EventView) {
124-
guard let descriptor = eventView.descriptor as? Event else {
125-
return
150+
151+
override func dayView(dayView: DayView, didLongPressTimelineAt date: Date) {
152+
print("Did long press timeline at date \(date)")
153+
// Cancel editing current event and start creating a new one
154+
endEventEditing()
155+
let event = generateEventNearDate(date)
156+
print("Creating a new event")
157+
create(event: event, animated: true)
158+
createdEvent = event
126159
}
127-
endEventEditing()
128-
print("Event has been longPressed: \(descriptor) \(String(describing: descriptor.userInfo))")
129-
beginEditing(event: descriptor, animated: true)
130-
print(Date())
131-
}
132-
133-
override func dayView(dayView: DayView, didTapTimelineAt date: Date) {
134-
endEventEditing()
135-
print("Did Tap at date: \(date)")
136-
}
137-
138-
override func dayViewDidBeginDragging(dayView: DayView) {
139-
endEventEditing()
140-
print("DayView did begin dragging")
141-
}
142-
143-
override func dayView(dayView: DayView, willMoveTo date: Date) {
144-
print("DayView = \(dayView) will move to: \(date)")
145-
}
146-
147-
override func dayView(dayView: DayView, didMoveTo date: Date) {
148-
print("DayView = \(dayView) did move to: \(date)")
149-
}
150-
151-
override func dayView(dayView: DayView, didLongPressTimelineAt date: Date) {
152-
print("Did long press timeline at date \(date)")
153-
// Cancel editing current event and start creating a new one
154-
endEventEditing()
155-
let event = generateEventNearDate(date)
156-
print("Creating a new event")
157-
create(event: event, animated: true)
158-
createdEvent = event
159-
}
160-
161-
private func generateEventNearDate(_ date: Date) -> EventDescriptor {
162-
let duration = (60...220).randomElement()!
163-
let startDate = Calendar.current.date(byAdding: .minute, value: -Int(Double(duration) / 2), to: date)!
164-
let event = Event()
165-
166-
event.dateInterval = DateInterval(start: startDate, duration: TimeInterval(duration * 60))
167-
168-
var info = data.randomElement()!
169-
170-
info.append(dateIntervalFormatter.string(from: event.dateInterval)!)
171-
event.text = info.reduce("", {$0 + $1 + "\n"})
172-
event.color = colors.randomElement()!
173-
event.editedEvent = event
174-
175-
return event
176-
}
177-
178-
override func dayView(dayView: DayView, didUpdate event: EventDescriptor) {
179-
print("did finish editing \(event)")
180-
print("new startDate: \(event.dateInterval.start) new endDate: \(event.dateInterval.end)")
181-
182-
if let _ = event.editedEvent {
183-
event.commitEditing()
160+
161+
private func generateEventNearDate(_ date: Date) -> EventDescriptor {
162+
let duration = (60...220).randomElement()!
163+
let startDate = Calendar.current.date(byAdding: .minute, value: -Int(Double(duration) / 2), to: date)!
164+
let event = Event()
165+
166+
event.dateInterval = DateInterval(start: startDate, duration: TimeInterval(duration * 60))
167+
168+
var info = data.randomElement()!
169+
170+
info.append(dateIntervalFormatter.string(from: event.dateInterval)!)
171+
event.text = info.reduce("", {$0 + $1 + "\n"})
172+
event.color = colors.randomElement()!
173+
event.editedEvent = event
174+
175+
return event
184176
}
185-
186-
if let createdEvent = createdEvent {
187-
createdEvent.editedEvent = nil
188-
generatedEvents.append(createdEvent)
189-
self.createdEvent = nil
190-
endEventEditing()
177+
178+
override func dayView(dayView: DayView, didUpdate event: EventDescriptor) {
179+
print("did finish editing \(event)")
180+
print("new startDate: \(event.dateInterval.start) new endDate: \(event.dateInterval.end)")
181+
182+
if let _ = event.editedEvent {
183+
event.commitEditing()
184+
}
185+
186+
if let createdEvent = createdEvent {
187+
createdEvent.editedEvent = nil
188+
generatedEvents.append(createdEvent)
189+
self.createdEvent = nil
190+
endEventEditing()
191+
}
192+
193+
reloadData()
191194
}
192-
193-
reloadData()
194-
}
195195
}

Package.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// swift-tools-version:5.7
2-
// The swift-tools-version declares the minimum version of Swift required to build this package.
32
import PackageDescription
43

54
let package = Package(
@@ -10,14 +9,11 @@ let package = Package(
109
.tvOS(.v11)
1110
],
1211
products: [
13-
// Products define the executables and libraries produced by a package, and make them visible to other packages.
1412
.library(
1513
name: "CalendarKit",
1614
targets: ["CalendarKit"]),
1715
],
1816
targets: [
19-
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
20-
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
2117
.target(name: "CalendarKit",
2218
path: "Sources")
2319
]

0 commit comments

Comments
 (0)