Skip to content

Commit

Permalink
Merge branch 'master' into imgbot
Browse files Browse the repository at this point in the history
  • Loading branch information
leits authored Jan 22, 2024
2 parents 688a608 + 42717a0 commit 3556b45
Show file tree
Hide file tree
Showing 7 changed files with 65 additions and 46 deletions.
1 change: 0 additions & 1 deletion MeetingBar/ActionsOnEventStart.swift
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ class ActionsOnEventStart: NSObject {
// this is an edge case when the event was already notified for, but scheduled for a later time.
if matchedEvent == nil || matchedEvent?.lastModifiedDate != nextEvent.lastModifiedDate {
if nextEvent.meetingLink != nil {
// nextEvent.openMeeting()
app.openAutJoinWindow(event: nextEvent)
}

Expand Down
2 changes: 1 addition & 1 deletion MeetingBar/AppStore.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import Foundation
import Defaults
import SwiftyStoreKit

struct PatronageProducts {
enum PatronageProducts {
static let threeMonth = "leits.MeetingBar.patronage.3Month"
static let sixMonth = "leits.MeetingBar.patronage.6Month"
static let twelveMonth = "leits.MeetingBar.patronage.12Month"
Expand Down
17 changes: 17 additions & 0 deletions MeetingBar/EventStores/Event.swift
Original file line number Diff line number Diff line change
Expand Up @@ -311,3 +311,20 @@ func getNextEvent(events: [MBEvent], linkRequired: Bool = false) -> MBEvent? {
}
return nextEvent
}

func getEventDateString(_ event: MBEvent) -> String {
let eventTimeFormatter = DateFormatter()
eventTimeFormatter.locale = I18N.instance.locale

switch Defaults[.timeFormat] {
case .am_pm:
eventTimeFormatter.dateFormat = "h:mm a "
case .military:
eventTimeFormatter.dateFormat = "HH:mm"
}
let eventStartTime = eventTimeFormatter.string(from: event.startDate)
let eventEndTime = eventTimeFormatter.string(from: event.endDate)
let eventDurationMinutes = String(Int(event.endDate.timeIntervalSince(event.startDate) / 60))
let durationTitle = "status_bar_submenu_duration_all_day".loco(eventStartTime, eventEndTime, eventDurationMinutes)
return durationTitle
}
21 changes: 21 additions & 0 deletions MeetingBar/Helpers.swift
Original file line number Diff line number Diff line change
Expand Up @@ -238,3 +238,24 @@ func openLinkFromClipboard() {
"Clipboard has no content, so the meeting cannot be started...")
}
}

func generateFakeEvent() -> MBEvent {
let calendar = MBCalendar(title: "Fake calendar", ID: "fake_cal", source: nil, email: nil, color: .black)

let event = MBEvent(
ID: "test_event",
lastModifiedDate: nil,
title: "Test event",
status: .confirmed,
notes: nil,
location: nil,
url: URL(string: "https://zoom.us/j/5551112222")!,
organizer: nil,
startDate: Calendar.current.date(byAdding: .minute, value: 3, to: Date())!,
endDate: Calendar.current.date(byAdding: .minute, value: 33, to: Date())!,
isAllDay: false,
recurrent: false,
calendar: calendar
)
return event
}
2 changes: 2 additions & 0 deletions MeetingBar/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSCalendarsFullAccessUsageDescription</key>
<string>To get events to show on status bar</string>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
Expand Down
66 changes: 23 additions & 43 deletions MeetingBar/Views/AutoJoinScreen.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,36 @@ struct AutoJoinScreen: View {
ZStack {
Rectangle.semiOpaqueWindow()
VStack {
Text(event.title).font(.system(size: 40)).padding(.bottom, 2)
Text(event.meetingLink?.service?.rawValue ?? "").font(.system(size: 16))
VStack {
Text(getEventDateString(event)).padding(.bottom, 2)
if #available(macOS 11.0, *) {
Text(event.startDate, style: .relative).font(.system(size: 16))
}
HStack {
Image(nsImage: getIconForMeetingService(event.meetingLink?.service))
.resizable().frame(width: 25, height: 25)
Text(event.title).font(.title)
}
VStack(spacing: 10) {
Text(getEventDateString(event))
}.padding(15)
HStack(spacing: 40) {
Button("Dismiss") {
self.window?.close()
HStack(spacing: 30) {
Button(action: dismiss) {
Text("general_close".loco()).padding(.vertical, 5).padding(.horizontal, 20)
}
Button("Join event") {
self.event.openMeeting()
self.window?.close()
}.background(Color.accentColor.opacity(1))
Button(action: joinEvent) {
Text("notifications_meetingbar_join_event_action".loco()).padding(.vertical, 5).padding(.horizontal, 25)
}.background(Color.accentColor).cornerRadius(5)
}
}
}
.colorScheme(.dark)
.frame(maxWidth: .infinity, maxHeight: .infinity)
}

func dismiss() {
window?.close()
}

func joinEvent() {
event.openMeeting()
window?.close()
}
}

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

func getEventDateString(_ event: MBEvent) -> String {
let formatter = DateIntervalFormatter()
formatter.dateStyle = .none
formatter.timeStyle = .short
return formatter.string(from: event.startDate, to: event.endDate)
}

func generateEvent() -> MBEvent {
let calendar = MBCalendar(title: "Fake calendar", ID: "fake_cal", source: nil, email: nil, color: .black)

let event = MBEvent(
ID: "test_event",
lastModifiedDate: nil,
title: "Test event",
status: .confirmed,
notes: nil,
location: nil,
url: URL(string: "https://zoom.us/j/5551112222")!,
organizer: nil,
startDate: Calendar.current.date(byAdding: .minute, value: 3, to: Date())!,
endDate: Calendar.current.date(byAdding: .minute, value: 33, to: Date())!,
isAllDay: false,
recurrent: false,
calendar: calendar
)
return event
}

#Preview {

Check failure on line 74 in MeetingBar/Views/AutoJoinScreen.swift

View workflow job for this annotation

GitHub Actions / Tests

use of unknown directive '#Preview'

Check failure on line 74 in MeetingBar/Views/AutoJoinScreen.swift

View workflow job for this annotation

GitHub Actions / Tests

use of unknown directive '#Preview'
AutoJoinScreen(event: generateEvent(), window: nil)
AutoJoinScreen(event: generateFakeEvent(), window: nil)
}
2 changes: 1 addition & 1 deletion MeetingBar/Views/Preferences/CalendarsTab.swift
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ struct CalendarRow: View {
.onAppear {
isSelected = Defaults[.selectedCalendarIDs].contains(calendar.ID)
}
.onReceive([self.isSelected].publisher.first()) { newValue in
.onReceive([isSelected].publisher.first()) { newValue in
if newValue {
Defaults[.selectedCalendarIDs].append(calendar.ID)
} else {
Expand Down

0 comments on commit 3556b45

Please sign in to comment.