Compare commits
2 Commits
3c83a83396
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
38af6174fa | ||
|
|
2fe20c804a |
@@ -6,6 +6,8 @@
|
|||||||
@inject AuthenticationStateProvider AuthProvider
|
@inject AuthenticationStateProvider AuthProvider
|
||||||
@inject ISnackbar Snackbar
|
@inject ISnackbar Snackbar
|
||||||
@inject HttpClient Http
|
@inject HttpClient Http
|
||||||
|
@implements IDisposable
|
||||||
|
@implements IAsyncDisposable
|
||||||
|
|
||||||
<MudStack Spacing="1" Row AlignItems="AlignItems.Center" Wrap="Wrap.NoWrap">
|
<MudStack Spacing="1" Row AlignItems="AlignItems.Center" Wrap="Wrap.NoWrap">
|
||||||
<!-- Кнопки управления -->
|
<!-- Кнопки управления -->
|
||||||
@@ -291,6 +293,13 @@
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
AudioPlayerService.OnLoadAndPlayRequested -= OnServiceLoadAndPlay;
|
||||||
|
AudioPlayerService.OnPlayRequested -= OnServicePlay;
|
||||||
|
AudioPlayerService.OnPauseRequested -= OnServicePause;
|
||||||
|
AudioPlayerService.OnSeekRequested -= OnServiceSeek;
|
||||||
|
AudioPlayerService.OnVolumeChangeRequested -= OnServiceVolumeChange;
|
||||||
|
AudioPlayerService.OnStateChanged -= OnServiceStateChanged;
|
||||||
|
|
||||||
if (_audioElement != null)
|
if (_audioElement != null)
|
||||||
await _audioElement.DisposeAsync();
|
await _audioElement.DisposeAsync();
|
||||||
if (_audioModule != null)
|
if (_audioModule != null)
|
||||||
@@ -298,4 +307,9 @@
|
|||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
DisposeAsync().AsTask().Wait();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -214,6 +214,13 @@
|
|||||||
}
|
}
|
||||||
</MudStack>
|
</MudStack>
|
||||||
</MudStack>
|
</MudStack>
|
||||||
|
<MudTextField @bind-Value="_playlistFilterText"
|
||||||
|
Placeholder="Фильтр треков..."
|
||||||
|
Adornment="Adornment.Start"
|
||||||
|
AdornmentIcon="@Icons.Material.Filled.Search"
|
||||||
|
Variant="Variant.Text"
|
||||||
|
FullWidth
|
||||||
|
Class="mb-2" />
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -231,7 +238,7 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<MudTable Items="@_tracks"
|
<MudTable Items="@FilteredPlaylistTracks"
|
||||||
Hover
|
Hover
|
||||||
Elevation="0"
|
Elevation="0"
|
||||||
Breakpoint="Breakpoint.None"
|
Breakpoint="Breakpoint.None"
|
||||||
@@ -388,7 +395,14 @@
|
|||||||
@if (_searchResult?.Tracks != null)
|
@if (_searchResult?.Tracks != null)
|
||||||
{
|
{
|
||||||
<MudText Typo="Typo.h6" Class="mt-4 mb-2 ml-2">Треки</MudText>
|
<MudText Typo="Typo.h6" Class="mt-4 mb-2 ml-2">Треки</MudText>
|
||||||
<MudTable Items="@_searchResult.Tracks"
|
<MudTextField @bind-Value="_searchFilterText"
|
||||||
|
Placeholder="Фильтр треков..."
|
||||||
|
Adornment="Adornment.Start"
|
||||||
|
AdornmentIcon="@Icons.Material.Filled.Search"
|
||||||
|
Variant="Variant.Text"
|
||||||
|
FullWidth
|
||||||
|
Class="mb-2" />
|
||||||
|
<MudTable Items="@FilteredSearchTracks"
|
||||||
Hover
|
Hover
|
||||||
Elevation="0"
|
Elevation="0"
|
||||||
Style="min-height: 0;"
|
Style="min-height: 0;"
|
||||||
@@ -457,6 +471,16 @@
|
|||||||
private bool _loading = true;
|
private bool _loading = true;
|
||||||
/// <summary>Состояние: Происходит загрузка треков плейлиста.</summary>
|
/// <summary>Состояние: Происходит загрузка треков плейлиста.</summary>
|
||||||
private bool _tracksLoading = true;
|
private bool _tracksLoading = true;
|
||||||
|
|
||||||
|
/// <summary>Текст фильтра для треков плейлиста</summary>
|
||||||
|
private string _playlistFilterText = "";
|
||||||
|
private List<YandexTrack> FilteredPlaylistTracks =>
|
||||||
|
string.IsNullOrWhiteSpace(_playlistFilterText)
|
||||||
|
? _tracks
|
||||||
|
: _tracks.Where(t => t.Title.Contains(_playlistFilterText, StringComparison.InvariantCultureIgnoreCase) ||
|
||||||
|
t.Artists.Any(a => a.Name.Contains(_playlistFilterText, StringComparison.InvariantCultureIgnoreCase)))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
|
||||||
/********************************
|
/********************************
|
||||||
* Вкладка добавления треков
|
* Вкладка добавления треков
|
||||||
@@ -471,9 +495,17 @@
|
|||||||
private MudTextField<string> _searchField;
|
private MudTextField<string> _searchField;
|
||||||
/// <summary>Результат поиска.</summary>
|
/// <summary>Результат поиска.</summary>
|
||||||
private YandexSearchResult? _searchResult = null;
|
private YandexSearchResult? _searchResult = null;
|
||||||
|
/// <summary>Текст фильтра для результатов поиска</summary>
|
||||||
|
private string _searchFilterText = "";
|
||||||
|
private List<YandexTrack> FilteredSearchTracks =>
|
||||||
|
string.IsNullOrWhiteSpace(_searchFilterText) || _searchResult?.Tracks == null
|
||||||
|
? _searchResult?.Tracks ?? new List<YandexTrack>()
|
||||||
|
: _searchResult.Tracks.Where(t => t.Title.Contains(_searchFilterText, StringComparison.InvariantCultureIgnoreCase) ||
|
||||||
|
t.Artists.Any(a => a.Name.Contains(_searchFilterText, StringComparison.InvariantCultureIgnoreCase)))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
/********************************
|
/********************************
|
||||||
* Вкладка добавления треков
|
* Контекстные кнопки
|
||||||
*********************************/
|
*********************************/
|
||||||
/// <summary>Признак, что альбом в фаворитах.</summary>
|
/// <summary>Признак, что альбом в фаворитах.</summary>
|
||||||
private bool _isFavorite;
|
private bool _isFavorite;
|
||||||
@@ -620,7 +652,6 @@
|
|||||||
await RemoveTrack(track);
|
await RemoveTrack(track);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#region Добавление/удаление трека
|
#region Добавление/удаление трека
|
||||||
/// <summary>Добавление трека.</summary>
|
/// <summary>Добавление трека.</summary>
|
||||||
@@ -933,7 +964,7 @@
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Поделитьсы ссылкой
|
#region Поделиться ссылкой
|
||||||
/// <summary> Поделиться ссылкой </summary>
|
/// <summary> Поделиться ссылкой </summary>
|
||||||
private async Task SharePlaylist()
|
private async Task SharePlaylist()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user