From 18d97db12ab5600ef570c6985d041daa302e50e9 Mon Sep 17 00:00:00 2001 From: Jack Mordaunt Date: Wed, 31 Jan 2018 01:05:40 +0100 Subject: [PATCH] [*] Added wrappers around type notificator to indicate which OS are supported by it. --- main.go | 4 ++-- types.go | 25 +++++++++++++++++-------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/main.go b/main.go index d0476fe..15d4bf3 100644 --- a/main.go +++ b/main.go @@ -15,9 +15,9 @@ func notifier(iconPath string) Notifier { case "linux": return NewLibNotifier(iconPath) case "darwin": - return NewAllNotifier(iconPath) + return NewDarwinNotifier(iconPath) case "windows": - return NewAllNotifier(iconPath) + return NewWindowsNotifier(iconPath) } return NoopNotifier{} } diff --git a/types.go b/types.go index 0dbc1e0..50d85e9 100644 --- a/types.go +++ b/types.go @@ -7,7 +7,6 @@ import ( "os" "time" - "github.com/0xAX/notificator" "github.com/fatih/color" "github.com/kevinschoon/pomo/libnotify" @@ -185,15 +184,13 @@ func (ln LibNotifier) Notify(title, body string) error { ) } -// AllNotifier can push notifications to mac, linux and windows. -// Icon can be specified via file path. -type AllNotifier struct { +// notificator can push notifications to mac, linux and windows. +type notificator struct { *notificator.Notificator iconPath string } -// NewAllNotifier constructs an AllNotifier object. -func NewAllNotifier(iconPath string) AllNotifier { +func newNotificator(iconPath string) notificator { // Write the built-in tomato icon if it // doesn't already exist. _, err := os.Stat(iconPath) @@ -201,13 +198,25 @@ func NewAllNotifier(iconPath string) AllNotifier { raw := MustAsset("tomato-icon.png") _ = ioutil.WriteFile(iconPath, raw, 0644) } - return AllNotifier{ + return notificator{ Notificator: notificator.New(notificator.Options{}), iconPath: iconPath, } } // Notify sends a notification to the OS. -func (n AllNotifier) Notify(title, body string) error { +func (n notificator) Notify(title, body string) error { return n.Push(title, body, n.iconPath, notificator.UR_NORMAL) } + +type DarwinNotifier = notificator + +func NewDarwinNotifier(iconPath string) DarwinNotifier { + return newNotificator(iconPath) +} + +type WindowsNotifier = notificator + +func NewWindowsNotifier(iconPath string) WindowsNotifier { + return newNotificator(iconPath) +}