Skip to content

Commit 3556b45

Browse files
authored
Merge branch 'master' into imgbot
2 parents 688a608 + 42717a0 commit 3556b45

7 files changed

Lines changed: 65 additions & 46 deletions

File tree

MeetingBar/ActionsOnEventStart.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ class ActionsOnEventStart: NSObject {
7575
// this is an edge case when the event was already notified for, but scheduled for a later time.
7676
if matchedEvent == nil || matchedEvent?.lastModifiedDate != nextEvent.lastModifiedDate {
7777
if nextEvent.meetingLink != nil {
78-
// nextEvent.openMeeting()
7978
app.openAutJoinWindow(event: nextEvent)
8079
}
8180

MeetingBar/AppStore.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import Foundation
1111
import Defaults
1212
import SwiftyStoreKit
1313

14-
struct PatronageProducts {
14+
enum PatronageProducts {
1515
static let threeMonth = "leits.MeetingBar.patronage.3Month"
1616
static let sixMonth = "leits.MeetingBar.patronage.6Month"
1717
static let twelveMonth = "leits.MeetingBar.patronage.12Month"

MeetingBar/EventStores/Event.swift

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,3 +311,20 @@ func getNextEvent(events: [MBEvent], linkRequired: Bool = false) -> MBEvent? {
311311
}
312312
return nextEvent
313313
}
314+
315+
func getEventDateString(_ event: MBEvent) -> String {
316+
let eventTimeFormatter = DateFormatter()
317+
eventTimeFormatter.locale = I18N.instance.locale
318+
319+
switch Defaults[.timeFormat] {
320+
case .am_pm:
321+
eventTimeFormatter.dateFormat = "h:mm a "
322+
case .military:
323+
eventTimeFormatter.dateFormat = "HH:mm"
324+
}
325+
let eventStartTime = eventTimeFormatter.string(from: event.startDate)
326+
let eventEndTime = eventTimeFormatter.string(from: event.endDate)
327+
let eventDurationMinutes = String(Int(event.endDate.timeIntervalSince(event.startDate) / 60))
328+
let durationTitle = "status_bar_submenu_duration_all_day".loco(eventStartTime, eventEndTime, eventDurationMinutes)
329+
return durationTitle
330+
}

MeetingBar/Helpers.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,3 +238,24 @@ func openLinkFromClipboard() {
238238
"Clipboard has no content, so the meeting cannot be started...")
239239
}
240240
}
241+
242+
func generateFakeEvent() -> MBEvent {
243+
let calendar = MBCalendar(title: "Fake calendar", ID: "fake_cal", source: nil, email: nil, color: .black)
244+
245+
let event = MBEvent(
246+
ID: "test_event",
247+
lastModifiedDate: nil,
248+
title: "Test event",
249+
status: .confirmed,
250+
notes: nil,
251+
location: nil,
252+
url: URL(string: "https://zoom.us/j/5551112222")!,
253+
organizer: nil,
254+
startDate: Calendar.current.date(byAdding: .minute, value: 3, to: Date())!,
255+
endDate: Calendar.current.date(byAdding: .minute, value: 33, to: Date())!,
256+
isAllDay: false,
257+
recurrent: false,
258+
calendar: calendar
259+
)
260+
return event
261+
}

MeetingBar/Info.plist

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
33
<plist version="1.0">
44
<dict>
5+
<key>NSCalendarsFullAccessUsageDescription</key>
6+
<string>To get events to show on status bar</string>
57
<key>CFBundleDevelopmentRegion</key>
68
<string>$(DEVELOPMENT_LANGUAGE)</string>
79
<key>CFBundleExecutable</key>

MeetingBar/Views/AutoJoinScreen.swift

Lines changed: 23 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,36 @@ struct AutoJoinScreen: View {
1717
ZStack {
1818
Rectangle.semiOpaqueWindow()
1919
VStack {
20-
Text(event.title).font(.system(size: 40)).padding(.bottom, 2)
21-
Text(event.meetingLink?.service?.rawValue ?? "").font(.system(size: 16))
22-
VStack {
23-
Text(getEventDateString(event)).padding(.bottom, 2)
24-
if #available(macOS 11.0, *) {
25-
Text(event.startDate, style: .relative).font(.system(size: 16))
26-
}
20+
HStack {
21+
Image(nsImage: getIconForMeetingService(event.meetingLink?.service))
22+
.resizable().frame(width: 25, height: 25)
23+
Text(event.title).font(.title)
24+
}
25+
VStack(spacing: 10) {
26+
Text(getEventDateString(event))
2727
}.padding(15)
28-
HStack(spacing: 40) {
29-
Button("Dismiss") {
30-
self.window?.close()
28+
HStack(spacing: 30) {
29+
Button(action: dismiss) {
30+
Text("general_close".loco()).padding(.vertical, 5).padding(.horizontal, 20)
3131
}
32-
Button("Join event") {
33-
self.event.openMeeting()
34-
self.window?.close()
35-
}.background(Color.accentColor.opacity(1))
32+
Button(action: joinEvent) {
33+
Text("notifications_meetingbar_join_event_action".loco()).padding(.vertical, 5).padding(.horizontal, 25)
34+
}.background(Color.accentColor).cornerRadius(5)
3635
}
3736
}
3837
}
3938
.colorScheme(.dark)
4039
.frame(maxWidth: .infinity, maxHeight: .infinity)
4140
}
41+
42+
func dismiss() {
43+
window?.close()
44+
}
45+
46+
func joinEvent() {
47+
event.openMeeting()
48+
window?.close()
49+
}
4250
}
4351

4452
public extension View {
@@ -63,34 +71,6 @@ struct VisualEffect: NSViewRepresentable {
6371
func updateNSView(_: NSView, context _: Context) {}
6472
}
6573

66-
func getEventDateString(_ event: MBEvent) -> String {
67-
let formatter = DateIntervalFormatter()
68-
formatter.dateStyle = .none
69-
formatter.timeStyle = .short
70-
return formatter.string(from: event.startDate, to: event.endDate)
71-
}
72-
73-
func generateEvent() -> MBEvent {
74-
let calendar = MBCalendar(title: "Fake calendar", ID: "fake_cal", source: nil, email: nil, color: .black)
75-
76-
let event = MBEvent(
77-
ID: "test_event",
78-
lastModifiedDate: nil,
79-
title: "Test event",
80-
status: .confirmed,
81-
notes: nil,
82-
location: nil,
83-
url: URL(string: "https://zoom.us/j/5551112222")!,
84-
organizer: nil,
85-
startDate: Calendar.current.date(byAdding: .minute, value: 3, to: Date())!,
86-
endDate: Calendar.current.date(byAdding: .minute, value: 33, to: Date())!,
87-
isAllDay: false,
88-
recurrent: false,
89-
calendar: calendar
90-
)
91-
return event
92-
}
93-
9474
#Preview {
95-
AutoJoinScreen(event: generateEvent(), window: nil)
75+
AutoJoinScreen(event: generateFakeEvent(), window: nil)
9676
}

MeetingBar/Views/Preferences/CalendarsTab.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ struct CalendarRow: View {
137137
.onAppear {
138138
isSelected = Defaults[.selectedCalendarIDs].contains(calendar.ID)
139139
}
140-
.onReceive([self.isSelected].publisher.first()) { newValue in
140+
.onReceive([isSelected].publisher.first()) { newValue in
141141
if newValue {
142142
Defaults[.selectedCalendarIDs].append(calendar.ID)
143143
} else {

0 commit comments

Comments
 (0)