Skip to content

spookygames/gdx-notifications

Repository files navigation

gdx-notifications

Cross-platform notifications for libgdx.

See here for an example implementation.

Setup

This library needs libgdx starting from version 1.5.5.

Add the pretty bold parts into your build.gradle file:

    allprojects {
        ext {
            gdxNotificationsVersion = '1.0.0'
        }
    }

    ...

    repositories {
        jcenter() Only necessary if you plan to use JCommunique
    }
    
    ...
    
    project(":desktop") {
        
        ...
        
        dependencies {
            compile project(":core")
            ...
            compile "games.spooky.gdx:gdx-notifications-desktop-jcommunique:$gdxNotificationsVersion" for Swing notifications
            OR
            compile "games.spooky.gdx:gdx-notifications-desktop-os:$gdxNotificationsVersion" for native notifications
        }
    }
    
    project(":android") {
        
        ...
        
        dependencies {
            compile project(":core")
            ...
            compile "games.spooky.gdx:gdx-notifications-android:$gdxNotificationsVersion"
        }
    }
    
    project(":html") {
            
        ...
        
        dependencies {
            compile project(":core")
            ...
            
            compile "games.spooky.gdx:gdx-notifications-html-gwt:$gdxNotificationsVersion"
            compile "games.spooky.gdx:gdx-notifications:$gdxNotificationsVersion:sources"
            compile "games.spooky.gdx:gdx-notifications-html-gwt:$gdxNotificationsVersion:sources" for gwt notifications
            OR
            compile "games.spooky.gdx:gdx-notifications-html-browser:$gdxNotificationsVersion"
            compile "games.spooky.gdx:gdx-notifications:$gdxNotificationsVersion:sources"
            compile "games.spooky.gdx:gdx-notifications-html-browser:$gdxNotificationsVersion:sources" for browser notifications
        }
    }
    
    project(":core") {
        
        ...
        
        dependencies {
            ...
            compile "games.spooky.gdx:gdx-notifications:$gdxNotificationsVersion"
        }
    }

Add

<inherits name="games.spooky.gdx.notifications.gdx_notifications_gwt"/>

after

<inherits name='com.badlogic.gdx.backends.gdx_backends_gwt'/>

in your GdxDefinition.gwt.xml.

Usage

Initialization

We're talking platform-specific stuff here, so you'll need to initialize the magic in your specific initializers. Simply follow the indications from libgdx's wiki.

Classes you'll have for this:

  • DesktopNotificationHandler (desktop, whether it's from JCommunique or java-to-OS-notify)
  • AndroidNotificationHandler (warning, notifications are not supported for android versions below 14)
  • HtmlNotificationHandler

And the base interface with two methods:

  • NotificationHandler

Notify

NotificationHandler handler = <your_platform-specific_handler_here>;
handler.showNotification(new NotificationParameters(12, "Notification title for the people", "Text Lorem ipsum"));

Remove notification

NotificationHandler handler = <your_platform-specific_handler_here>;

// You could (should!) very well get the parameters object from above
// But it will go nice too if you create a new object
// Only the id matters actually
handler.hideNotification(new NotificationParameters(12, "", ""));

Platform support