mirror of
https://github.com/natekspencer/hacs-oasis_mini.git
synced 2025-11-12 23:23:51 -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://ko-fi.com/natekspencer)
|
||||||
[](https://github.com/hacs/integration)
|
[](https://github.com/hacs/integration)
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
<picture>
|
<picture>
|
||||||
<source media="(prefers-color-scheme: dark)" srcset="https://brands.home-assistant.io/oasis_mini/dark_logo.png">
|
<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
|
# Move track to next item in the playlist and then select it
|
||||||
if (index := device.playlist.index(track)) != device.playlist_index:
|
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_move_track(index, _next)
|
||||||
await device.async_change_track(_next)
|
await device.async_change_track(_next)
|
||||||
|
|
||||||
|
|||||||
@@ -176,10 +176,14 @@ class OasisMini:
|
|||||||
|
|
||||||
async def async_add_track_to_playlist(self, track: int) -> None:
|
async def async_add_track_to_playlist(self, track: int) -> None:
|
||||||
"""Add track to playlist."""
|
"""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]
|
playlist = [t for t in self.playlist if t] + [track]
|
||||||
await self.async_set_playlist(playlist)
|
return await self.async_set_playlist(playlist)
|
||||||
else:
|
|
||||||
|
_LOGGER.debug("Adding track %s to playlist", track)
|
||||||
await self._async_command(params={"ADDJOBLIST": track})
|
await self._async_command(params={"ADDJOBLIST": track})
|
||||||
self.playlist.append(track)
|
self.playlist.append(track)
|
||||||
|
|
||||||
@@ -191,7 +195,7 @@ class OasisMini:
|
|||||||
|
|
||||||
async def async_clear_playlist(self) -> None:
|
async def async_clear_playlist(self) -> None:
|
||||||
"""Clear the playlist."""
|
"""Clear the playlist."""
|
||||||
await self.async_set_playlist([0])
|
await self.async_set_playlist([])
|
||||||
|
|
||||||
async def async_get_ip_address(self) -> str | None:
|
async def async_get_ip_address(self) -> str | None:
|
||||||
"""Get the ip address."""
|
"""Get the ip address."""
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"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": {
|
"data": {
|
||||||
"email": "[%key:common::config_flow::data::email%]",
|
"email": "[%key:common::config_flow::data::email%]",
|
||||||
"password": "[%key:common::config_flow::data::password%]"
|
"password": "[%key:common::config_flow::data::password%]"
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"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": {
|
"data": {
|
||||||
"email": "Email",
|
"email": "Email",
|
||||||
"password": "Password"
|
"password": "Password"
|
||||||
|
|||||||
Reference in New Issue
Block a user