From e9151896b2e9dfbd3f364997583db930c20fd996 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 28 Jul 2016 01:19:24 -0400 Subject: [PATCH] update notifications --- .../emby-webcomponents/.bower.json | 8 +- .../browserdeviceprofile.js | 49 +- .../librarychangednotifications.js | 117 ---- .../notifications/notificationicon.png | Bin 0 -> 3917 bytes .../notifications/notifications.js | 182 ++++++ .../emby-webcomponents/servernotifications.js | 23 +- .../iron-location/.bower.json | 8 +- .../iron-location/.travis.yml | 18 +- .../bower_components/iron-location/bower.json | 2 +- .../iron-location/iron-location.html | 538 +++++++++--------- .../iron-location/test/iron-location.html | 242 ++++++-- .../bower_components/polymer/.bower.json | 6 +- dashboard-ui/css/images/checkmarkblack.png | Bin 2780 -> 0 bytes .../css/images/items/searchhintsv2/tv.png | Bin 1302 -> 0 bytes .../css/images/notifications/cancelled.png | Bin 4719 -> 0 bytes .../css/images/notifications/done.png | Bin 916 -> 0 bytes .../css/images/notifications/download.png | Bin 1631 -> 0 bytes .../css/images/notifications/error.png | Bin 2164 -> 0 bytes .../css/images/notifications/info.png | Bin 2996 -> 0 bytes dashboard-ui/css/images/splash.jpg | Bin 102383 -> 0 bytes dashboard-ui/css/images/splash720.jpg | Bin 21921 -> 0 bytes dashboard-ui/css/images/stars.png | Bin 4990 -> 0 bytes dashboard-ui/css/notifications.css | 18 +- dashboard-ui/css/site.css | 6 - dashboard-ui/scripts/livetvsettings.js | 1 - dashboard-ui/scripts/livetvstatus.js | 6 + dashboard-ui/scripts/site.js | 153 +---- 27 files changed, 710 insertions(+), 667 deletions(-) delete mode 100644 dashboard-ui/bower_components/emby-webcomponents/librarychangednotifications.js create mode 100644 dashboard-ui/bower_components/emby-webcomponents/notifications/notificationicon.png create mode 100644 dashboard-ui/bower_components/emby-webcomponents/notifications/notifications.js delete mode 100644 dashboard-ui/css/images/checkmarkblack.png delete mode 100644 dashboard-ui/css/images/items/searchhintsv2/tv.png delete mode 100644 dashboard-ui/css/images/notifications/cancelled.png delete mode 100644 dashboard-ui/css/images/notifications/done.png delete mode 100644 dashboard-ui/css/images/notifications/download.png delete mode 100644 dashboard-ui/css/images/notifications/error.png delete mode 100644 dashboard-ui/css/images/notifications/info.png delete mode 100644 dashboard-ui/css/images/splash.jpg delete mode 100644 dashboard-ui/css/images/splash720.jpg delete mode 100644 dashboard-ui/css/images/stars.png diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index b3983fa08d..dbb3e4f967 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -14,12 +14,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.123", - "_release": "1.4.123", + "version": "1.4.124", + "_release": "1.4.124", "_resolution": { "type": "version", - "tag": "1.4.123", - "commit": "9939e23191c1f45c2ea59e41a4e55c22c2839bb7" + "tag": "1.4.124", + "commit": "308546fe094fa18c356480d1d13c8790d43de971" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.0", diff --git a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js index 3735f369ad..a296629528 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js +++ b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js @@ -53,12 +53,18 @@ define(['browser'], function (browser) { if (browser.tizen) { return true; } + if (isEdgeUniversal()) { + return true; + } } else if (format == 'wma') { if (browser.tizen) { return true; } + if (isEdgeUniversal()) { + return true; + } } else if (format == 'opus') { @@ -84,13 +90,31 @@ define(['browser'], function (browser) { return false; } - function testCanPlayMkv() { + function isEdgeUniversal() { + + if (browser.edge) { + + var userAgent = navigator.userAgent.toLowerCase(); + if (userAgent.indexOf('msapphost') != -1) { + return true; + } + } + + return false; + } + + function testCanPlayMkv(videoTestElement) { + + if (videoTestElement.canPlayType('video/x-matroska') || + videoTestElement.canPlayType('video/mkv')) { + return true; + } + + var userAgent = navigator.userAgent.toLowerCase(); // Unfortunately there's no real way to detect mkv support if (browser.chrome) { - var userAgent = navigator.userAgent.toLowerCase(); - // Not supported on opera tv if (browser.operaTv) { return false; @@ -108,6 +132,11 @@ define(['browser'], function (browser) { return true; } + if (isEdgeUniversal()) { + + return true; + } + return false; } @@ -122,9 +151,11 @@ define(['browser'], function (browser) { switch (container) { + case 'asf': + supported = browser.tizen || isEdgeUniversal(); + break; case '3gp': case 'avi': - case 'asf': case 'flv': case 'mpg': case 'mpeg': @@ -135,9 +166,11 @@ define(['browser'], function (browser) { supported = browser.tizen; break; case 'm2ts': - case 'wmv': supported = browser.tizen || browser.web0s; break; + case 'wmv': + supported = browser.tizen || browser.web0s || isEdgeUniversal(); + break; case 'ts': supported = browser.tizen || browser.web0s; if (supported) { @@ -199,7 +232,7 @@ define(['browser'], function (browser) { var canPlayWebm = videoTestElement.canPlayType('video/webm').replace(/no/, ''); - var canPlayMkv = testCanPlayMkv(); + var canPlayMkv = testCanPlayMkv(videoTestElement); var canPlayTs = testCanPlayTs(); var profile = {}; @@ -218,7 +251,7 @@ define(['browser'], function (browser) { // Only put mp3 first if mkv support is there // Otherwise with HLS and mp3 audio we're seeing some browsers - if (videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, '')) { + if (videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, '') || isEdgeUniversal()) { // safari is lying if (!browser.safari) { videoAudioCodecs.push('ac3'); @@ -266,7 +299,7 @@ define(['browser'], function (browser) { } // These are formats we can't test for but some devices will support - ['m2ts', 'wmv', 'ts'].map(getDirectPlayProfileForVideoContainer).filter(function (i) { + ['m2ts', 'wmv', 'ts', 'asf'].map(getDirectPlayProfileForVideoContainer).filter(function (i) { return i != null; }).forEach(function (i) { diff --git a/dashboard-ui/bower_components/emby-webcomponents/librarychangednotifications.js b/dashboard-ui/bower_components/emby-webcomponents/librarychangednotifications.js deleted file mode 100644 index aad549e8fe..0000000000 --- a/dashboard-ui/bower_components/emby-webcomponents/librarychangednotifications.js +++ /dev/null @@ -1,117 +0,0 @@ -define(['connectionManager', 'playbackManager', 'events', 'inputManager', 'focusManager', 'embyRouter'], function (connectionManager, playbackManager, events, inputManager, focusManager, embyRouter) { - - function onOneDocumentClick() { - - document.removeEventListener('click', onOneDocumentClick); - document.removeEventListener('keydown', onOneDocumentClick); - - if (window.Notification) { - Notification.requestPermission(); - } - } - document.addEventListener('click', onOneDocumentClick); - document.addEventListener('keydown', onOneDocumentClick); - - function onLibraryChanged(data, apiClient) { - - var newItems = data.ItemsAdded; - - if (!newItems.length || /*AppInfo.isNativeApp ||*/ !window.Notification || Notification.permission !== "granted") { - return; - } - - if (playbackManager.isPlayingVideo()) { - return; - } - - apiClient.getItems(apiClient.getCurrentUserId(), { - - Recursive: true, - Limit: 3, - IsFolder: false, - SortBy: "DateCreated", - SortOrder: "Descending", - ImageTypes: "Primary", - Ids: newItems.join(',') - - }).then(function (result) { - - var items = result.Items; - - for (var i = 0, length = items.length ; i < length; i++) { - - var item = items[i]; - - var notification = { - title: "New " + item.Type, - body: item.Name, - timeout: 15000, - vibrate: true, - - data: { - //options: { - // url: LibraryBrowser.getHref(item) - //} - } - }; - - var imageTags = item.ImageTags || {}; - - if (imageTags.Primary) { - - notification.icon = apiClient.getScaledImageUrl(item.Id, { - width: 80, - tag: imageTags.Primary, - type: "Primary" - }); - } - - var notif = new Notification(notification.title, notification); - - if (notif.show) { - notif.show(); - } - - if (notification.timeout) { - setTimeout(function () { - - if (notif.close) { - notif.close(); - } - else if (notif.cancel) { - notif.cancel(); - } - }, notification.timeout); - } - } - }); - } - - function onWebSocketMessageReceived(e, msg) { - - var apiClient = this; - - if (msg.MessageType === "LibraryChanged") { - var cmd = msg.Data; - onLibraryChanged(cmd, apiClient); - } - } - - function bindEvents(apiClient) { - - if (!apiClient) { - return; - } - - events.off(apiClient, "websocketmessage", onWebSocketMessageReceived); - events.on(apiClient, "websocketmessage", onWebSocketMessageReceived); - } - - bindEvents(connectionManager.currentApiClient()); - - events.on(connectionManager, 'apiclientcreated', function (e, newApiClient) { - - bindEvents(newApiClient); - }); - -}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/notifications/notificationicon.png b/dashboard-ui/bower_components/emby-webcomponents/notifications/notificationicon.png new file mode 100644 index 0000000000000000000000000000000000000000..38807c3343901d9ec18ba5d9b8f48a7fcb43128b GIT binary patch literal 3917 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 diff --git a/dashboard-ui/bower_components/iron-location/test/iron-location.html b/dashboard-ui/bower_components/iron-location/test/iron-location.html index c4fd4ee602..dc8c004430 100644 --- a/dashboard-ui/bower_components/iron-location/test/iron-location.html +++ b/dashboard-ui/bower_components/iron-location/test/iron-location.html @@ -19,8 +19,30 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN + + + +