From dd7d8d4792f81b5c26d72bebd85babd825a4a72d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 4 Mar 2020 14:42:50 -0800 Subject: [PATCH] Remove 'show all controls' option for Plex (#32391) --- homeassistant/components/plex/__init__.py | 15 +++--- homeassistant/components/plex/config_flow.py | 8 ---- homeassistant/components/plex/media_player.py | 47 ------------------- homeassistant/components/plex/server.py | 6 --- homeassistant/components/plex/strings.json | 1 - tests/components/plex/test_config_flow.py | 7 --- 6 files changed, 9 insertions(+), 75 deletions(-) diff --git a/homeassistant/components/plex/__init__.py b/homeassistant/components/plex/__init__.py index c9b120f75f6..101704013c1 100644 --- a/homeassistant/components/plex/__init__.py +++ b/homeassistant/components/plex/__init__.py @@ -48,12 +48,15 @@ from .const import ( ) from .server import PlexServer -MEDIA_PLAYER_SCHEMA = vol.Schema( - { - vol.Optional(CONF_USE_EPISODE_ART, default=False): cv.boolean, - vol.Optional(CONF_SHOW_ALL_CONTROLS, default=False): cv.boolean, - vol.Optional(CONF_IGNORE_NEW_SHARED_USERS, default=False): cv.boolean, - } +MEDIA_PLAYER_SCHEMA = vol.All( + cv.deprecated(CONF_SHOW_ALL_CONTROLS, invalidation_version="0.110"), + vol.Schema( + { + vol.Optional(CONF_USE_EPISODE_ART, default=False): cv.boolean, + vol.Optional(CONF_SHOW_ALL_CONTROLS): cv.boolean, + vol.Optional(CONF_IGNORE_NEW_SHARED_USERS, default=False): cv.boolean, + } + ), ) SERVER_CONFIG_SCHEMA = vol.Schema( diff --git a/homeassistant/components/plex/config_flow.py b/homeassistant/components/plex/config_flow.py index 19cec6dfb8b..6e4dce3e914 100644 --- a/homeassistant/components/plex/config_flow.py +++ b/homeassistant/components/plex/config_flow.py @@ -25,7 +25,6 @@ from .const import ( # pylint: disable=unused-import CONF_MONITORED_USERS, CONF_SERVER, CONF_SERVER_IDENTIFIER, - CONF_SHOW_ALL_CONTROLS, CONF_USE_EPISODE_ART, DEFAULT_VERIFY_SSL, DOMAIN, @@ -272,9 +271,6 @@ class PlexOptionsFlowHandler(config_entries.OptionsFlow): self.options[MP_DOMAIN][CONF_USE_EPISODE_ART] = user_input[ CONF_USE_EPISODE_ART ] - self.options[MP_DOMAIN][CONF_SHOW_ALL_CONTROLS] = user_input[ - CONF_SHOW_ALL_CONTROLS - ] self.options[MP_DOMAIN][CONF_IGNORE_NEW_SHARED_USERS] = user_input[ CONF_IGNORE_NEW_SHARED_USERS ] @@ -315,10 +311,6 @@ class PlexOptionsFlowHandler(config_entries.OptionsFlow): CONF_USE_EPISODE_ART, default=plex_server.option_use_episode_art, ): bool, - vol.Required( - CONF_SHOW_ALL_CONTROLS, - default=plex_server.option_show_all_controls, - ): bool, vol.Optional( CONF_MONITORED_USERS, default=default_accounts ): cv.multi_select(available_accounts), diff --git a/homeassistant/components/plex/media_player.py b/homeassistant/components/plex/media_player.py index 47e5ba6104f..0599837aa80 100644 --- a/homeassistant/components/plex/media_player.py +++ b/homeassistant/components/plex/media_player.py @@ -17,7 +17,6 @@ from homeassistant.components.media_player.const import ( SUPPORT_PLAY_MEDIA, SUPPORT_PREVIOUS_TRACK, SUPPORT_STOP, - SUPPORT_TURN_OFF, SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, ) @@ -481,46 +480,6 @@ class PlexMediaPlayer(MediaPlayerDevice): @property def supported_features(self): """Flag media player features that are supported.""" - # force show all controls - if self.plex_server.option_show_all_controls: - return ( - SUPPORT_PAUSE - | SUPPORT_PREVIOUS_TRACK - | SUPPORT_NEXT_TRACK - | SUPPORT_STOP - | SUPPORT_VOLUME_SET - | SUPPORT_PLAY - | SUPPORT_PLAY_MEDIA - | SUPPORT_TURN_OFF - | SUPPORT_VOLUME_MUTE - ) - - # no mute support - if self.make.lower() == "shield android tv": - _LOGGER.debug( - "Shield Android TV client detected, disabling mute controls: %s", - self.name, - ) - return ( - SUPPORT_PAUSE - | SUPPORT_PREVIOUS_TRACK - | SUPPORT_NEXT_TRACK - | SUPPORT_STOP - | SUPPORT_VOLUME_SET - | SUPPORT_PLAY - | SUPPORT_PLAY_MEDIA - | SUPPORT_TURN_OFF - ) - - # Only supports play,pause,stop (and off which really is stop) - if self.make.lower().startswith("tivo"): - _LOGGER.debug( - "Tivo client detected, only enabling pause, play, " - "stop, and off controls: %s", - self.name, - ) - return SUPPORT_PAUSE | SUPPORT_PLAY | SUPPORT_STOP | SUPPORT_TURN_OFF - if self.device and "playback" in self._device_protocol_capabilities: return ( SUPPORT_PAUSE @@ -530,7 +489,6 @@ class PlexMediaPlayer(MediaPlayerDevice): | SUPPORT_VOLUME_SET | SUPPORT_PLAY | SUPPORT_PLAY_MEDIA - | SUPPORT_TURN_OFF | SUPPORT_VOLUME_MUTE ) @@ -594,11 +552,6 @@ class PlexMediaPlayer(MediaPlayerDevice): self.device.stop(self._active_media_plexapi_type) self.plex_server.update_platforms() - def turn_off(self): - """Turn the client off.""" - # Fake it since we can't turn the client off - self.media_stop() - def media_next_track(self): """Send next track command.""" if self.device and "playback" in self._device_protocol_capabilities: diff --git a/homeassistant/components/plex/server.py b/homeassistant/components/plex/server.py index 5532362b87a..54a248309b6 100644 --- a/homeassistant/components/plex/server.py +++ b/homeassistant/components/plex/server.py @@ -16,7 +16,6 @@ from .const import ( CONF_IGNORE_NEW_SHARED_USERS, CONF_MONITORED_USERS, CONF_SERVER, - CONF_SHOW_ALL_CONTROLS, CONF_USE_EPISODE_ART, DEFAULT_VERIFY_SSL, PLEX_NEW_MP_SIGNAL, @@ -264,11 +263,6 @@ class PlexServer: """Return use_episode_art option.""" return self.options[MP_DOMAIN][CONF_USE_EPISODE_ART] - @property - def option_show_all_controls(self): - """Return show_all_controls option.""" - return self.options[MP_DOMAIN][CONF_SHOW_ALL_CONTROLS] - @property def option_monitored_users(self): """Return dict of monitored users option.""" diff --git a/homeassistant/components/plex/strings.json b/homeassistant/components/plex/strings.json index 1f99e28df8b..cf91b8b6fb7 100644 --- a/homeassistant/components/plex/strings.json +++ b/homeassistant/components/plex/strings.json @@ -36,7 +36,6 @@ "description": "Options for Plex Media Players", "data": { "use_episode_art": "Use episode art", - "show_all_controls": "Show all controls", "ignore_new_shared_users": "Ignore new managed/shared users", "monitored_users": "Monitored users" } diff --git a/tests/components/plex/test_config_flow.py b/tests/components/plex/test_config_flow.py index b331444123a..4e7af44c5a4 100644 --- a/tests/components/plex/test_config_flow.py +++ b/tests/components/plex/test_config_flow.py @@ -26,7 +26,6 @@ MOCK_FILE_CONTENTS = { DEFAULT_OPTIONS = { config_flow.MP_DOMAIN: { config_flow.CONF_USE_EPISODE_ART: False, - config_flow.CONF_SHOW_ALL_CONTROLS: False, config_flow.CONF_IGNORE_NEW_SHARED_USERS: False, } } @@ -485,7 +484,6 @@ async def test_option_flow(hass): result["flow_id"], user_input={ config_flow.CONF_USE_EPISODE_ART: True, - config_flow.CONF_SHOW_ALL_CONTROLS: True, config_flow.CONF_IGNORE_NEW_SHARED_USERS: True, config_flow.CONF_MONITORED_USERS: list(mock_plex_server.accounts), }, @@ -494,7 +492,6 @@ async def test_option_flow(hass): assert result["data"] == { config_flow.MP_DOMAIN: { config_flow.CONF_USE_EPISODE_ART: True, - config_flow.CONF_SHOW_ALL_CONTROLS: True, config_flow.CONF_IGNORE_NEW_SHARED_USERS: True, config_flow.CONF_MONITORED_USERS: { user: {"enabled": True} for user in mock_plex_server.accounts @@ -530,7 +527,6 @@ async def test_option_flow_loading_saved_users(hass): result["flow_id"], user_input={ config_flow.CONF_USE_EPISODE_ART: True, - config_flow.CONF_SHOW_ALL_CONTROLS: True, config_flow.CONF_IGNORE_NEW_SHARED_USERS: True, config_flow.CONF_MONITORED_USERS: list(mock_plex_server.accounts), }, @@ -539,7 +535,6 @@ async def test_option_flow_loading_saved_users(hass): assert result["data"] == { config_flow.MP_DOMAIN: { config_flow.CONF_USE_EPISODE_ART: True, - config_flow.CONF_SHOW_ALL_CONTROLS: True, config_flow.CONF_IGNORE_NEW_SHARED_USERS: True, config_flow.CONF_MONITORED_USERS: { user: {"enabled": True} for user in mock_plex_server.accounts @@ -580,7 +575,6 @@ async def test_option_flow_new_users_available(hass): result["flow_id"], user_input={ config_flow.CONF_USE_EPISODE_ART: True, - config_flow.CONF_SHOW_ALL_CONTROLS: True, config_flow.CONF_IGNORE_NEW_SHARED_USERS: True, config_flow.CONF_MONITORED_USERS: list(mock_plex_server.accounts), }, @@ -589,7 +583,6 @@ async def test_option_flow_new_users_available(hass): assert result["data"] == { config_flow.MP_DOMAIN: { config_flow.CONF_USE_EPISODE_ART: True, - config_flow.CONF_SHOW_ALL_CONTROLS: True, config_flow.CONF_IGNORE_NEW_SHARED_USERS: True, config_flow.CONF_MONITORED_USERS: { user: {"enabled": True} for user in mock_plex_server.accounts