package im.actor.core.js.providers.electron; public class JsElectronApp { public static native boolean isElectron()/*-{ return 'require' in $wnd; }-*/; public static native void bounce()/*-{ var ipc = $wnd.require("electron").ipcRenderer; ipc.send('tray-bounce'); }-*/; public static native void hideNewMessages()/*-{ var ipc = $wnd.require("electron").ipcRenderer; ipc.send('new-messages-hide'); }-*/; public static native void updateBadge(int count)/*-{ var ipc = $wnd.require("electron").ipcRenderer; ipc.send('tray-badge', { count: count }); }-*/; public static native void subscribe(String topic, JsElectronListener listener)/*-{ var ipc = $wnd.require("electron").ipcRenderer; ipc.on(topic, function(event, message) { listener.@im.actor.core.js.providers.electron.JsElectronListener::onEvent(*)(message); }); }-*/; public static native void openUrlExternal(String url)/*-{ var shell = $wnd.require('electron').shell; shell.openExternal(url); }-*/; }