feature: anime status icon

This commit is contained in:
2020-05-17 11:30:28 +08:00
parent 2469a5ba88
commit 03b83b16c4
6 changed files with 22 additions and 3 deletions

View File

@@ -659,7 +659,7 @@ namespace Pixiview.Illust
{
return;
}
if (y - lastRefreshY > 100)
if (y - lastRefreshY > 200)
{
if (CheckRefresh())
{

View File

@@ -44,6 +44,15 @@
FontSize="Micro" TextColor="White"
IsVisible="{Binding IsPageVisible}"/>
<u:RoundLabel Text="{Binding AnimeStatus}"
BackgroundColor="{DynamicResource MaskColor}" Margin="0, 0, 6, 6"
Padding="13, 12, 0, 0" CornerRadius="22"
WidthRequest="44" HeightRequest="44"
HorizontalOptions="End" VerticalOptions="End"
FontFamily="{DynamicResource IconSolidFontFamily}"
FontSize="20" TextColor="White"
IsVisible="{Binding IsAnimateSliderVisible}"/>
<Slider Grid.Row="1" VerticalOptions="End"
Margin="{DynamicResource ScreenBottomPadding}"
MinimumTrackColor="{DynamicResource TintColor}"

View File

@@ -27,6 +27,8 @@ namespace Pixiview.Illust
nameof(CurrentPage), typeof(int), typeof(ViewIllustPage), propertyChanged: OnCurrentPagePropertyChanged);
public static readonly BindableProperty IsScrollAnimatedProperty = BindableProperty.Create(
nameof(IsScrollAnimated), typeof(bool), typeof(ViewIllustPage), true);
public static readonly BindableProperty AnimeStatusProperty = BindableProperty.Create(
nameof(AnimeStatus), typeof(string), typeof(ViewIllustPage), StyleDefinition.IconPlay);
public static readonly BindableProperty IsAnimateSliderVisibleProperty = BindableProperty.Create(
nameof(IsAnimateSliderVisible), typeof(bool), typeof(ViewIllustPage));
public static readonly BindableProperty IsAnimateSliderEnabledProperty = BindableProperty.Create(
@@ -83,6 +85,11 @@ namespace Pixiview.Illust
get => (int)GetValue(CurrentPageProperty);
set => SetValue(CurrentPageProperty, value);
}
public string AnimeStatus
{
get => (string)GetValue(AnimeStatusProperty);
set => SetValue(AnimeStatusProperty, value);
}
public bool IsScrollAnimated
{
get => (bool)GetValue(IsScrollAnimatedProperty);
@@ -493,6 +500,7 @@ namespace Pixiview.Illust
if (ugoira != null)
{
var playing = !ugoira.IsPlaying;
AnimeStatus = playing ? StyleDefinition.IconPause : StyleDefinition.IconPlay;
IsAnimateSliderEnabled = !playing;
ugoira.TogglePlay(playing);
illustItem.IsPlaying = playing;
@@ -506,6 +514,7 @@ namespace Pixiview.Illust
ugoira = new Ugoira(ugoiraData, item);
ugoira.FrameChanged += OnUgoiraFrameChanged;
AnimeStatus = StyleDefinition.IconPause;
illustItem.IsPlaying = true;
ugoira.TogglePlay(true);
}