From 709b62fd2a10cf3613d5c375e1d8ede26cb0fb7f Mon Sep 17 00:00:00 2001 From: Dennis Karpienski Date: Mon, 11 Apr 2016 18:02:44 +0200 Subject: [PATCH 01/14] added input select to media_player --- src/cards/ha-media_player-card.html | 29 ++++++++++++++++++++++ src/cards/ha-media_player-card.js | 29 ++++++++++++++++++++-- src/more-infos/more-info-media_player.html | 15 +++++++++++ src/more-infos/more-info-media_player.js | 27 ++++++++++++++++++++ 4 files changed, 98 insertions(+), 2 deletions(-) diff --git a/src/cards/ha-media_player-card.html b/src/cards/ha-media_player-card.html index 66ca70b682..5f05c2b81b 100644 --- a/src/cards/ha-media_player-card.html +++ b/src/cards/ha-media_player-card.html @@ -55,6 +55,13 @@ top: 91px; } + .source-container { + position: absolute; + left: 8px; + right: 8px; + top: 170px; + } + .controls { @apply(--paper-font-body1); padding: 8px; @@ -138,6 +145,28 @@ class='self-center' > +
+ + + + + + + +
+ + + +
+ +
diff --git a/src/cards/ha-media_player-card.js b/src/cards/ha-media_player-card.js index c658c4bb62..34c24b44b1 100644 --- a/src/cards/ha-media_player-card.js +++ b/src/cards/ha-media_player-card.js @@ -1,7 +1,7 @@ import Polymer from '../polymer'; import hass from '../util/home-assistant-js-instance'; -const { moreInfoActions } = hass; +const { moreInfoActions, serviceActions } = hass; export default new Polymer({ is: 'ha-media_player-card', @@ -27,6 +27,11 @@ export default new Polymer({ computed: 'computePlaybackControlIcon(playerObj)', }, + selectedSource: { + type: String, + observer: 'selectedSourceChanged', + }, + /** * The z-depth of the card, from 0-5. */ @@ -38,7 +43,11 @@ export default new Polymer({ }, playerObjChanged(playerObj) { - this.style.height = this.computeShowControls(playerObj) ? '175px' : '78px'; + this.style.height = '78px'; + if (this.computeShowControls(playerObj)) { + this.style.height = playerObj.supportsSelectInputSource ? '232px' : '175px'; + } + this.style.backgroundImage = playerObj.stateObj.attributes.entity_picture ? `url(${playerObj.stateObj.attributes.entity_picture})` : ''; }, @@ -76,6 +85,18 @@ export default new Polymer({ return playerObj.isMuted ? 'mdi:volume-off' : 'mdi:volume-high'; }, + computeSelectedSource(stateObj) { + return stateObj.attributes.source_list.indexOf(stateObj.attributes.source); + }, + + selectedSourceChanged(option) { + // Selected Option will transition to '' before transitioning to new value + if (option === '' || option === this.stateObj.attributes.source) { + return; + } + this.playerObj.input(option); + }, + handleNext(ev) { ev.stopPropagation(); this.playerObj.nextTrack(); @@ -111,4 +132,8 @@ export default new Polymer({ this.playerObj.volumeMute(!this.playerObj.isMuted); }, + stopPropagation(ev) { + ev.stopPropagation(); + }, + }); diff --git a/src/more-infos/more-info-media_player.html b/src/more-infos/more-info-media_player.html index 0453dac3d2..b9034e9b33 100644 --- a/src/more-infos/more-info-media_player.html +++ b/src/more-infos/more-info-media_player.html @@ -64,6 +64,21 @@ on-change='volumeSliderChanged' class='flex'> +
+ + + + + + + +
diff --git a/src/more-infos/more-info-media_player.js b/src/more-infos/more-info-media_player.js index 6f58c65ebf..72ade7d32b 100644 --- a/src/more-infos/more-info-media_player.js +++ b/src/more-infos/more-info-media_player.js @@ -75,11 +75,21 @@ export default new Polymer({ value: false, }, + supportsSelectInputSource: { + type: Boolean, + value: false, + }, + hasMediaControl: { type: Boolean, value: false, }, + selectedSource: { + type: String, + observer: 'selectedSourceChanged', + }, + }, stateObjChanged(newVal) { @@ -99,6 +109,7 @@ export default new Polymer({ this.supportsTurnOn = (newVal.attributes.supported_media_commands & 128) !== 0; this.supportsTurnOff = (newVal.attributes.supported_media_commands & 256) !== 0; this.supportsVolumeButtons = (newVal.attributes.supported_media_commands & 1024) !== 0; + this.supportsSelectInputSource = (newVal.attributes.supported_media_commands & 2048) !== 0; } this.async(() => this.fire('iron-resize'), 500); @@ -135,6 +146,18 @@ export default new Polymer({ return isOff ? !supportsTurnOn : !supportsTurnOff; }, + computeSelectedSource(stateObj) { + return stateObj.attributes.source_list.indexOf(stateObj.attributes.source); + }, + + selectedSourceChanged(option) { + // Selected Option will transition to '' before transitioning to new value + if (option === '' || option === this.stateObj.attributes.source) { + return; + } + this.callService('select_source', { source: option }); + }, + handleTogglePower() { this.callService(this.isOff ? 'turn_on' : 'turn_off'); }, @@ -186,4 +209,8 @@ export default new Polymer({ serviceData.entity_id = this.stateObj.entityId; serviceActions.callService('media_player', service, serviceData); }, + + stopPropagation(ev) { + ev.stopPropagation(); + }, }); From 583e8e67261102d00c638e14001a139de27b52b0 Mon Sep 17 00:00:00 2001 From: Dennis Karpienski Date: Mon, 11 Apr 2016 18:08:57 +0200 Subject: [PATCH 02/14] updated commit parent hash --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5b509adecb..356c77ed2f 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "author": "Paulus Schoutsen (http://paulusschoutsen.nl)", "license": "MIT", "dependencies": { - "home-assistant-js": "git+https://github.com/balloob/home-assistant-js.git#7dc486d2195435eca2c0e194c1f6ca7ee3163138", + "home-assistant-js": "git+https://github.com/balloob/home-assistant-js.git#f92320adc57c8f8d917376ff680476dcb25cd029", "lodash": "^4.8.2", "moment": "^2.12.0" }, From 916de139ef52c3642ce904a17aed8ba3708797c7 Mon Sep 17 00:00:00 2001 From: Dennis Karpienski Date: Mon, 11 Apr 2016 18:11:58 +0200 Subject: [PATCH 03/14] fixed code style --- src/cards/ha-media_player-card.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cards/ha-media_player-card.js b/src/cards/ha-media_player-card.js index 34c24b44b1..b556371aca 100644 --- a/src/cards/ha-media_player-card.js +++ b/src/cards/ha-media_player-card.js @@ -1,7 +1,7 @@ import Polymer from '../polymer'; import hass from '../util/home-assistant-js-instance'; -const { moreInfoActions, serviceActions } = hass; +const { moreInfoActions } = hass; export default new Polymer({ is: 'ha-media_player-card', @@ -45,7 +45,7 @@ export default new Polymer({ playerObjChanged(playerObj) { this.style.height = '78px'; if (this.computeShowControls(playerObj)) { - this.style.height = playerObj.supportsSelectInputSource ? '232px' : '175px'; + this.style.height = playerObj.supportsSelectInputSource ? '232px' : '175px'; } this.style.backgroundImage = playerObj.stateObj.attributes.entity_picture ? From 40b19006f1887c979929ce98716cf0080ed9a3d5 Mon Sep 17 00:00:00 2001 From: Dennis Karpienski Date: Mon, 11 Apr 2016 18:25:11 +0200 Subject: [PATCH 04/14] fixed layout --- src/cards/ha-media_player-card.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cards/ha-media_player-card.html b/src/cards/ha-media_player-card.html index 5f05c2b81b..a057087097 100644 --- a/src/cards/ha-media_player-card.html +++ b/src/cards/ha-media_player-card.html @@ -152,7 +152,7 @@ - + diff --git a/src/cards/ha-media_player-card.js b/src/cards/ha-media_player-card.js index b556371aca..c658c4bb62 100644 --- a/src/cards/ha-media_player-card.js +++ b/src/cards/ha-media_player-card.js @@ -27,11 +27,6 @@ export default new Polymer({ computed: 'computePlaybackControlIcon(playerObj)', }, - selectedSource: { - type: String, - observer: 'selectedSourceChanged', - }, - /** * The z-depth of the card, from 0-5. */ @@ -43,11 +38,7 @@ export default new Polymer({ }, playerObjChanged(playerObj) { - this.style.height = '78px'; - if (this.computeShowControls(playerObj)) { - this.style.height = playerObj.supportsSelectInputSource ? '232px' : '175px'; - } - + this.style.height = this.computeShowControls(playerObj) ? '175px' : '78px'; this.style.backgroundImage = playerObj.stateObj.attributes.entity_picture ? `url(${playerObj.stateObj.attributes.entity_picture})` : ''; }, @@ -85,18 +76,6 @@ export default new Polymer({ return playerObj.isMuted ? 'mdi:volume-off' : 'mdi:volume-high'; }, - computeSelectedSource(stateObj) { - return stateObj.attributes.source_list.indexOf(stateObj.attributes.source); - }, - - selectedSourceChanged(option) { - // Selected Option will transition to '' before transitioning to new value - if (option === '' || option === this.stateObj.attributes.source) { - return; - } - this.playerObj.input(option); - }, - handleNext(ev) { ev.stopPropagation(); this.playerObj.nextTrack(); @@ -132,8 +111,4 @@ export default new Polymer({ this.playerObj.volumeMute(!this.playerObj.isMuted); }, - stopPropagation(ev) { - ev.stopPropagation(); - }, - }); From 0921fdb63dc2ae38a575ed834ca8c452e29d2277 Mon Sep 17 00:00:00 2001 From: Dennis Karpienski Date: Mon, 11 Apr 2016 22:15:56 +0200 Subject: [PATCH 06/14] reverted package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 356c77ed2f..5b509adecb 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "author": "Paulus Schoutsen (http://paulusschoutsen.nl)", "license": "MIT", "dependencies": { - "home-assistant-js": "git+https://github.com/balloob/home-assistant-js.git#f92320adc57c8f8d917376ff680476dcb25cd029", + "home-assistant-js": "git+https://github.com/balloob/home-assistant-js.git#7dc486d2195435eca2c0e194c1f6ca7ee3163138", "lodash": "^4.8.2", "moment": "^2.12.0" }, From bc03090e8a0a8d96ef4f68c505c164fe564804eb Mon Sep 17 00:00:00 2001 From: Dennis Karpienski Date: Mon, 11 Apr 2016 22:18:42 +0200 Subject: [PATCH 07/14] code cleanup --- src/more-infos/more-info-media_player.html | 9 ++------- src/more-infos/more-info-media_player.js | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/src/more-infos/more-info-media_player.html b/src/more-infos/more-info-media_player.html index b9034e9b33..037b6ab3af 100644 --- a/src/more-infos/more-info-media_player.html +++ b/src/more-infos/more-info-media_player.html @@ -64,13 +64,8 @@ on-change='volumeSliderChanged' class='flex'> -
- - +
+