1
0
mirror of https://github.com/natekspencer/hacs-oasis_mini.git synced 2025-11-17 01:23:43 -05:00

Handle invalid index bug in play random track button

This commit is contained in:
Nathan Spencer
2024-08-02 12:01:27 -06:00
parent 31276048dc
commit a44c035828
5 changed files with 18 additions and 11 deletions

View File

@@ -21,7 +21,7 @@ async def add_and_play_track(device: OasisMini, track: int) -> None:
# Move track to next item in the playlist and then select it
if (index := device.playlist.index(track)) != device.playlist_index:
if index != (_next := min(device.playlist_index + 1, len(device.playlist))):
if index != (_next := min(device.playlist_index + 1, len(device.playlist) - 1)):
await device.async_move_track(index, _next)
await device.async_change_track(_next)

View File

@@ -176,12 +176,16 @@ class OasisMini:
async def async_add_track_to_playlist(self, track: int) -> None:
"""Add track to playlist."""
if track and 0 in self.playlist:
if not track:
return
if 0 in self.playlist:
playlist = [t for t in self.playlist if t] + [track]
await self.async_set_playlist(playlist)
else:
await self._async_command(params={"ADDJOBLIST": track})
self.playlist.append(track)
return await self.async_set_playlist(playlist)
_LOGGER.debug("Adding track %s to playlist", track)
await self._async_command(params={"ADDJOBLIST": track})
self.playlist.append(track)
async def async_change_track(self, index: int) -> None:
"""Change the track."""
@@ -191,7 +195,7 @@ class OasisMini:
async def async_clear_playlist(self) -> None:
"""Clear the playlist."""
await self.async_set_playlist([0])
await self.async_set_playlist([])
async def async_get_ip_address(self) -> str | None:
"""Get the ip address."""

View File

@@ -26,7 +26,7 @@
"options": {
"step": {
"init": {
"description": "Add your cloud credentials to get additional information about your Oasis Mini",
"description": "Add your cloud credentials to get additional information about your device",
"data": {
"email": "[%key:common::config_flow::data::email%]",
"password": "[%key:common::config_flow::data::password%]"

View File

@@ -26,7 +26,7 @@
"options": {
"step": {
"init": {
"description": "Add your cloud credentials to get additional information about your Oasis Mini",
"description": "Add your cloud credentials to get additional information about your device",
"data": {
"email": "Email",
"password": "Password"