Enhance footer
continuous-integration/drone/push Build is passing Details

pull/37/head
Corentin LEMAIRE 2 years ago
parent 91c2a51d9f
commit 54167c7fd1

@ -1,22 +1,26 @@
using System;
namespace Linaris.Converters
namespace Linaris.Converters;
public class InverseBooleanConverter : IValueConverter
{
public class InverseBooleanConverter : IValueConverter
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
if (value is bool boolValue)
{
if (value is bool boolValue)
{
return !boolValue;
}
return value;
return !boolValue;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is bool boolValue)
{
throw new NotImplementedException();
return !boolValue;
}
return value;
}
}

@ -2,6 +2,7 @@ using CommunityToolkit.Maui.Core.Primitives;
using Model;
using Model.Stub;
using System.ComponentModel;
using System.Configuration;
namespace Linaris;
@ -111,9 +112,14 @@ public partial class FooterPage : ContentView, INotifyPropertyChanged
private void TimeSlider_ValueChanged(object sender, ValueChangedEventArgs e)
{
if ((TimeSlider.Value * music.Duration.TotalSeconds) - music.Position.TotalSeconds <= 1 && (TimeSlider.Value * music.Duration.TotalSeconds) - music.Position.TotalSeconds >= -1)
{
return;
}
TimeSpan PositionTimeSpan = TimeSpan.FromSeconds(TimeSlider.Value * music.Duration.TotalSeconds);
music.SeekTo(PositionTimeSpan);
Position = music.Position.ToString(@"hh\:mm\:ss");
Duration = music.Duration.ToString(@"hh\:mm\:ss");
}
private void Music_StateChanged(object sender, MediaStateChangedEventArgs e)
@ -135,8 +141,8 @@ public partial class FooterPage : ContentView, INotifyPropertyChanged
Manager.PreviousTitle();
Dispatcher.DispatchAsync(() =>
{
CurrentPlaying = Manager.CurrentPlaying;
music.Source = CurrentPlaying.Path;
string encodedFilePath = Manager.CurrentPlaying.Path.Replace(" ", "\\ ");
music.Source = encodedFilePath;
Duration = music.Duration.ToString(@"hh\:mm\:ss");
});
}
@ -147,8 +153,8 @@ public partial class FooterPage : ContentView, INotifyPropertyChanged
Manager.NextTitle();
Dispatcher.DispatchAsync(() =>
{
CurrentPlaying = Manager.CurrentPlaying;
music.Source = CurrentPlaying.Path;
string encodedFilePath = Manager.CurrentPlaying.Path.Replace(" ", "\\ ");
music.Source = encodedFilePath;
Duration = music.Duration.ToString(@"hh\:mm\:ss");
});
}
@ -169,8 +175,8 @@ public partial class FooterPage : ContentView, INotifyPropertyChanged
Manager.NextTitle();
Dispatcher.DispatchAsync(() =>
{
CurrentPlaying = Manager.CurrentPlaying;
music.Source = CurrentPlaying.Path;
string encodedFilePath = Manager.CurrentPlaying.Path.Replace(" ", "\\ ");
music.Source = encodedFilePath;
Duration = music.Duration.ToString(@"hh\:mm\:ss");
});
}

@ -55,6 +55,7 @@
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
<PackageReference Include="NAudio" Version="2.1.0" />
<PackageReference Include="Plugin.Maui.Audio" Version="1.0.0" />
<PackageReference Include="Xamarin.Essentials" Version="1.7.5" />
</ItemGroup>
<ItemGroup>

@ -33,19 +33,19 @@
</VerticalStackLayout>
<Grid IsVisible="{Binding IsSubMenuVisible}" BackgroundColor="Grey" HeightRequest="125" WidthRequest="155" Grid.Column="0" RowDefinitions="*,*,*,*">
<Button Grid.Row="0" Text="Jouer" Clicked="Play"/>
<Button Grid.Row="1" Text="Ajouter à une playlist" Clicked="ShowPlaylistMenu"/>
<Button Grid.Row="2" Text="Supprimer" Clicked="RemoveCustomTitle"/>
<Button Grid.Row="3" Text="Changer l'image" Clicked="ChangeImage"/>
<Button Grid.Row="0" Text="Jouer" Clicked="Play" BackgroundColor="DimGrey" Padding="0,2"/>
<Button Grid.Row="1" Text="Ajouter à une playlist" Clicked="ShowPlaylistMenu" BackgroundColor="DimGrey" Padding="0,2"/>
<Button Grid.Row="2" Text="Supprimer" Clicked="RemoveCustomTitle" BackgroundColor="DimGrey" Padding="0,2"/>
<Button Grid.Row="3" Text="Changer l'image" Clicked="ChangeImage" BackgroundColor="DimGrey" Padding="0,2"/>
</Grid>
<ScrollView Grid.Column="1" IsVisible="{Binding IsPlaylistMenuVisible}" BackgroundColor="Grey" WidthRequest="150" HeightRequest="200">
<StackLayout>
<Button Text="+ Nouvelle playlist" TextColor="CornflowerBlue" FontAttributes="Bold" Clicked="ShowNewPlaylistMenu" IsVisible="{Binding IsNewPlaylistMenuVisible, Converter={StaticResource InverseBooleanConverter}}"/>
<Button Padding="0,5" Text="+ Nouvelle playlist" TextColor="CornflowerBlue" FontAttributes="Bold" Clicked="ShowNewPlaylistMenu" IsVisible="{Binding IsNewPlaylistMenuVisible, Converter={StaticResource InverseBooleanConverter}}"/>
<Entry Placeholder="Nom de la playlist" PlaceholderColor="LightGrey" IsVisible="{Binding IsNewPlaylistMenuVisible}" Completed="AddPlaylist"/>
<StackLayout BindableLayout.ItemsSource="{Binding Source={RelativeSource AncestorType={x:Type ContentPage}}, Path=Playlists}">
<BindableLayout.ItemTemplate>
<DataTemplate>
<Button Text="{Binding Name}" Clicked="AddToPlaylist"/>
<Button Text="{Binding Name}" Clicked="AddToPlaylist" Padding="0,5"/>
</DataTemplate>
</BindableLayout.ItemTemplate>
</StackLayout>

@ -1,5 +1,4 @@
using CommunityToolkit.Maui.Views;
using Microsoft.Maui.Controls;
using Model;
using System.Collections.ObjectModel;
using System.Diagnostics;
@ -92,7 +91,7 @@ public partial class LocalFilesPage : ContentPage
{
foreach (var result in results)
{
CustomTitle custom = new CustomTitle(result.FileName, "none.png", "", result.FullPath);
CustomTitle custom = new (result.FileName, "none.png", "", result.FullPath);
if (!IsCustomTitleInCollection(custom))
{
AddCustomTitle(custom);

@ -3,11 +3,6 @@
<application android:allowBackup="false" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true" android:usesCleartextTraffic="false"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" android:minSdkVersion="32"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" android:minSdkVersion="32"/>
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" android:minSdkVersion="32"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>

@ -22,9 +22,9 @@
<Label Text="{Binding Description}" Style="{StaticResource SousTitre}"/>
<Grid BackgroundColor="Transparent" MinimumHeightRequest="0" Margin="0,20,0,0">
<FlexLayout Direction="Row" AlignItems="Center" JustifyContent="SpaceEvenly" Wrap="Wrap">
<Button Text="Aléatoire" Style="{StaticResource PlayButton}" Clicked="RdmPlay"/>
<Button Text="Lecture" Style="{StaticResource PlayButton}" Clicked="Play"/>
<Button Text="Modifier" Style="{StaticResource PlayButton}" Clicked="EditPlaylist"/>
<Button Text="Aléatoire" Style="{StaticResource PlayButton}" Clicked="RdmPlay" Padding="10,5"/>
<Button Text="Lecture" Style="{StaticResource PlayButton}" Clicked="Play" Padding="10,5"/>
<Button Text="Modifier" Style="{StaticResource PlayButton}" Clicked="EditPlaylist" Padding="10,5"/>
</FlexLayout>
</Grid>
@ -35,8 +35,8 @@
<ViewCell.ContextActions>
<MenuItem Text="Supprimer" Clicked="RemoveCustomTitle"/>
</ViewCell.ContextActions>
<Frame Style="{StaticResource Song}">
<Label Text="{Binding Name}" FontSize="20" TextColor="white" HorizontalTextAlignment="Center"/>
<Frame Style="{StaticResource Song}" Padding="0">
<Label Text="{Binding Name}" FontSize="20" TextColor="white" HorizontalTextAlignment="Center" VerticalOptions="Center"/>
</Frame>
</ViewCell>
</DataTemplate>

@ -44,7 +44,8 @@ public partial class PlaylistPage : ContentPage
if (musicElement != null)
{
if (Manager.CurrentPlaying == null) return;
musicElement.Source = Manager.CurrentPlaying.Path;
string encodedFilePath = Manager.CurrentPlaying.Path.Replace(" ", "\\ ");
musicElement.Source = encodedFilePath;
}
if (footer is FooterPage footerPage)
{
@ -68,7 +69,8 @@ public partial class PlaylistPage : ContentPage
if (musicElement != null)
{
if (Manager.CurrentPlaying == null) return;
musicElement.Source = Manager.CurrentPlaying.Path;
string encodedFilePath = Manager.CurrentPlaying.Path.Replace(" ", "\\ ");
musicElement.Source = encodedFilePath;
}
}
}

@ -485,27 +485,11 @@
<Setter Property="Color" Value="{AppThemeBinding Light={StaticResource Gray950}, Dark={StaticResource Gray200}}" />
</Style>
<!--<Style TargetType="Button">
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource White}, Dark={StaticResource Blue200Accent}}" />
<Setter Property="BackgroundColor" Value="{AppThemeBinding Light={StaticResource Blue200Accent}, Dark={StaticResource White}}" />
<Setter Property="FontFamily" Value="OpenSansRegular"/>
<Setter Property="FontSize" Value="14"/>
<Style TargetType="Button">
<Setter Property="CornerRadius" Value="8"/>
<Setter Property="Padding" Value="14,10"/>
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="TextColor" Value="{AppThemeBinding Light={StaticResource Gray950}, Dark={StaticResource Gray200}}" />
<Setter Property="BackgroundColor" Value="{AppThemeBinding Light={StaticResource Gray200}, Dark={StaticResource Gray600}}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>-->
<Setter Property="BackgroundColor" Value="DimGrey"/>
<Setter Property="Padding" Value="0,2"/>
</Style>
<Style TargetType="CheckBox">
<Setter Property="Color" Value="{AppThemeBinding Light={StaticResource Primary}, Dark={StaticResource White}}" />

Loading…
Cancel
Save