[vlc-commits] osx_notifications: Show notification only if VLC in background, cleanup

Marvin Scholz git at videolan.org
Fri Oct 23 11:28:51 CEST 2015


vlc | branch: master | Marvin Scholz <epirat07 at gmail.com> | Thu Oct 22 18:18:51 2015 +0200| [a4baa14604589df63243a32cd9ca97236eee4d4c] | committer: Jean-Baptiste Kempf

osx_notifications: Show notification only if VLC in background, cleanup

This cleans up unnecessary code which could be replaced by a much simple
check to determine if VLC is in foreground or not.
Add a missing release.

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a4baa14604589df63243a32cd9ca97236eee4d4c
---

 modules/notify/osx_notifications.m |   37 ++++++------------------------------
 1 file changed, 6 insertions(+), 31 deletions(-)

diff --git a/modules/notify/osx_notifications.m b/modules/notify/osx_notifications.m
index 73bcd9e..6077f3a 100644
--- a/modules/notify/osx_notifications.m
+++ b/modules/notify/osx_notifications.m
@@ -86,7 +86,6 @@
     NSString *notificationType;
     NSMutableDictionary *registrationDictionary;
     id lastNotification;
-    BOOL isInForeground;
     intf_thread_t *interfaceThread;
 }
 
@@ -289,21 +288,6 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
     registrationDictionary = nil;
     interfaceThread = thread;
 
-    // Assume we start in foreground
-    isInForeground = YES;
-
-    // Subscribe to notifications to determine if VLC is in foreground or not
-    @autoreleasepool {
-        [[NSNotificationCenter defaultCenter] addObserver:self
-                                                 selector:@selector(applicationActiveChange:)
-                                                     name:NSApplicationDidBecomeActiveNotification
-                                                   object:nil];
-
-        [[NSNotificationCenter defaultCenter] addObserver:self
-                                                 selector:@selector(applicationActiveChange:)
-                                                     name:NSApplicationDidResignActiveNotification
-                                                   object:nil];
-    }
     return self;
 }
 
@@ -317,7 +301,6 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
              removeDeliveredNotification:(NSUserNotification *)lastNotification];
             [lastNotification release];
         }
-        [[NSNotificationCenter defaultCenter] removeObserver:self];
     }
 #endif
 
@@ -356,6 +339,10 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
               andArtUrl:(const char *)url
 {
     @autoreleasepool {
+        // Do not notify if in foreground
+        if ([NSApplication sharedApplication].active)
+            return;
+
         // Init Cover
         NSData *coverImageData = nil;
         NSImage *coverImage = nil;
@@ -375,6 +362,7 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
         } else {
             // Without title, notification makes no sense, so return here
             // title should never be empty, but better check than crash.
+            [coverImage release];
             return;
         }
         if (artist)
@@ -447,17 +435,11 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
     return applicationName;
 }
 
-- (void)applicationActiveChange:(NSNotification *)n {
-    if (n.name == NSApplicationDidBecomeActiveNotification)
-        isInForeground = YES;
-    else if (n.name == NSApplicationDidResignActiveNotification)
-        isInForeground = NO;
-}
-
 #if __MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
 - (void)userNotificationCenter:(NSUserNotificationCenter *)center
        didActivateNotification:(NSUserNotification *)notification
 {
+    // Skip to next song
     if (notification.activationType == NSUserNotificationActivationTypeActionButtonClicked) {
         playlist_Next(pl_Get(interfaceThread));
     }
@@ -474,12 +456,5 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
     [notification retain];
     lastNotification = notification;
 }
-
-- (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center
-     shouldPresentNotification:(NSUserNotification *)notification
-{
-    // Show notifications regardless if App in foreground or background
-    return YES;
-}
 #endif
 @end



More information about the vlc-commits mailing list