Add playoff round view, game numbers, goal scorer notifications, standings

- Fetch NHL standings and surface league/season game counts in the menu bar
- Prefix regular-season rows with the league-wide game number (from gameId)
- New ROUND section shows each active playoff series (matchup, series score,
  next game number + time) derived from /v1/playoff-bracket; rows always open
  the NHL series page so completed series remain clickable
- Goal notifications include scorer sweater, abbreviated name, and strength
  (PPG/SHG/EN), resolved via /v1/gamecenter/{id}/play-by-play
- Drop the per-team filter submenu and NHLTeam enum
- Regenerate AppIcon with the full 10-size macOS set (alpha preserved) so
  notifications render the app icon correctly; rename the iOS marketing PNG
  to icon-ios-1024.png
- gitignore .claude/ local tooling settings
This commit is contained in:
2026-04-18 21:51:27 -04:00
parent 8f8f8b2755
commit 57358797e1
44 changed files with 596 additions and 286 deletions
+7 -2
View File
@@ -7,6 +7,7 @@
import UserNotifications
import AppKit
import CoreServices
class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCenterDelegate {
private let logger = IceGlassLogger(
@@ -20,8 +21,12 @@ class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCenterDele
logger.info("applicationDidFinishLaunching")
UNUserNotificationCenter.current().delegate = self
// Set app icon explicitly (LSUIElement apps may not pick it up automatically)
if let icon = NSImage(named: "AppIcon") {
// Force re-register with Launch Services to refresh cached icon
LSRegisterURL(Bundle.main.bundleURL as CFURL, true)
// Set app icon explicitly from .icns (NSImage(named:) doesn't work for App Icon assets)
if let icnsPath = Bundle.main.path(forResource: "AppIcon", ofType: "icns"),
let icon = NSImage(contentsOfFile: icnsPath) {
NSApp.applicationIconImage = icon
}
}