mirror of
https://github.com/natekspencer/hacs-oasis_mini.git
synced 2025-11-08 05:03:52 -05:00
Handle invalid index bug in play random track button
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||

|
||||
[](https://github.com/natekspencer/hacs-oasis_mini/releases)
|
||||
[](https://ko-fi.com/natekspencer)
|
||||
[](https://github.com/hacs/integration)
|
||||
[](https://github.com/hacs/integration)
|
||||
|
||||

|
||||

|
||||
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://brands.home-assistant.io/oasis_mini/dark_logo.png">
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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."""
|
||||
|
||||
@@ -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%]"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user