From a445ebdf3c280ea8e07efe3a865384e589daed90 Mon Sep 17 00:00:00 2001
From: ktnrg45 <38207570+ktnrg45@users.noreply.github.com>
Date: Fri, 3 Jul 2020 11:34:11 -0700
Subject: [PATCH] Fix undesired power toggling (#37427)

---
 homeassistant/components/ps4/manifest.json   |  2 +-
 homeassistant/components/ps4/media_player.py |  4 ++++
 requirements_all.txt                         |  2 +-
 requirements_test_all.txt                    |  2 +-
 tests/components/ps4/test_media_player.py    | 16 ++++++++++++++++
 5 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/homeassistant/components/ps4/manifest.json b/homeassistant/components/ps4/manifest.json
index 4cc86f109f8..3527a05e5b3 100644
--- a/homeassistant/components/ps4/manifest.json
+++ b/homeassistant/components/ps4/manifest.json
@@ -3,6 +3,6 @@
   "name": "Sony PlayStation 4",
   "config_flow": true,
   "documentation": "https://www.home-assistant.io/integrations/ps4",
-  "requirements": ["pyps4-2ndscreen==1.1.0"],
+  "requirements": ["pyps4-2ndscreen==1.1.1"],
   "codeowners": ["@ktnrg45"]
 }
diff --git a/homeassistant/components/ps4/media_player.py b/homeassistant/components/ps4/media_player.py
index 9bd4ddbefbe..3ecd268f92b 100644
--- a/homeassistant/components/ps4/media_player.py
+++ b/homeassistant/components/ps4/media_player.py
@@ -453,6 +453,10 @@ class PS4Device(MediaPlayerEntity):
         """Turn on the media player."""
         self._ps4.wakeup()
 
+    async def async_toggle(self):
+        """Toggle media player."""
+        await self._ps4.toggle()
+
     async def async_media_pause(self):
         """Send keypress ps to return to menu."""
         await self.async_send_remote_control("ps")
diff --git a/requirements_all.txt b/requirements_all.txt
index f2e063c4ea8..1fd0d49fcea 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -1546,7 +1546,7 @@ pypjlink2==1.2.1
 pypoint==1.1.2
 
 # homeassistant.components.ps4
-pyps4-2ndscreen==1.1.0
+pyps4-2ndscreen==1.1.1
 
 # homeassistant.components.qvr_pro
 pyqvrpro==0.52
diff --git a/requirements_test_all.txt b/requirements_test_all.txt
index ece27c3e2bc..9bb3527ac11 100644
--- a/requirements_test_all.txt
+++ b/requirements_test_all.txt
@@ -708,7 +708,7 @@ pyotp==2.3.0
 pypoint==1.1.2
 
 # homeassistant.components.ps4
-pyps4-2ndscreen==1.1.0
+pyps4-2ndscreen==1.1.1
 
 # homeassistant.components.qwikswitch
 pyqwikswitch==0.93
diff --git a/tests/components/ps4/test_media_player.py b/tests/components/ps4/test_media_player.py
index 8ff8dea71ce..4e22591d3b0 100644
--- a/tests/components/ps4/test_media_player.py
+++ b/tests/components/ps4/test_media_player.py
@@ -379,6 +379,22 @@ async def test_turn_off(hass):
     assert len(mock_call.mock_calls) == 1
 
 
+async def test_toggle(hass):
+    """Test that toggle service calls function."""
+    mock_entity_id = await setup_mock_component(hass)
+    mock_func = "{}{}".format(
+        "homeassistant.components.ps4.media_player.", "pyps4.Ps4Async.toggle"
+    )
+
+    with patch(mock_func) as mock_call:
+        await hass.services.async_call(
+            "media_player", "toggle", {ATTR_ENTITY_ID: mock_entity_id}
+        )
+        await hass.async_block_till_done()
+
+    assert len(mock_call.mock_calls) == 1
+
+
 async def test_media_pause(hass):
     """Test that media pause service calls function."""
     mock_entity_id = await setup_mock_component(hass)
-- 
GitLab