Skip to content
Open
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions WinUIGallery/Controls/PageHeader.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ private void UserControl_Loaded(object sender, RoutedEventArgs e)
}
if (Item != null)
{
FavoriteButton.IsChecked = SettingsHelper.Contains(SettingsKeys.Favorites, Item.UniqueId);
FavoriteButton.IsChecked = SettingsHelper.Current.Favorites.Contains(Item.UniqueId);
}
}

Expand All @@ -119,13 +119,17 @@ private void FavoriteButton_Click(object sender, RoutedEventArgs e)
{
if (sender is ToggleButton toggleButton && Item != null)
{
var favs = SettingsHelper.Current.Favorites;

if (toggleButton.IsChecked == true)
{
SettingsHelper.TryAddItem(SettingsKeys.Favorites, Item.UniqueId, InsertPosition.Last);
favs.AddToLast(Item.UniqueId, isFavorite: true);
SettingsHelper.Current.Favorites = favs;
}
else
{
SettingsHelper.TryRemoveItem(SettingsKeys.Favorites, Item.UniqueId);
favs.Remove(Item.UniqueId);
SettingsHelper.Current.Favorites = favs;
}
}
}
Expand Down
27 changes: 2 additions & 25 deletions WinUIGallery/Helpers/NavigationOrientationHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,43 +2,20 @@
// Licensed under the MIT License.

using Microsoft.UI.Xaml.Controls;
using Microsoft.Windows.Storage;

namespace WinUIGallery.Helpers;

public static partial class NavigationOrientationHelper
{
private static bool _isLeftMode = true;
private static ApplicationData appData = ApplicationData.GetDefault();
public static bool IsLeftMode()
{
if (NativeMethods.IsAppPackaged)
{
var valueFromSettings = appData.LocalSettings.Values[SettingsKeys.IsLeftMode];
if (valueFromSettings == null)
{
appData.LocalSettings.Values[SettingsKeys.IsLeftMode] = true;
valueFromSettings = true;
}
return (bool)valueFromSettings;
}
else
{
return _isLeftMode;
}
return SettingsHelper.Current.IsLeftMode;
}

public static void IsLeftModeForElement(bool isLeftMode)
{
UpdateNavigationViewForElement(isLeftMode);
if (NativeMethods.IsAppPackaged)
{
appData.LocalSettings.Values[SettingsKeys.IsLeftMode] = isLeftMode;
}
else
{
_isLeftMode = isLeftMode;
}
SettingsHelper.Current.IsLeftMode = isLeftMode;
}

public static void UpdateNavigationViewForElement(bool isLeftMode)
Expand Down
28 changes: 2 additions & 26 deletions WinUIGallery/Helpers/ProtocolActivationClipboardHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,40 +15,16 @@ namespace WinUIGallery.Helpers;
/// </summary>
public static partial class ProtocolActivationClipboardHelper
{
private static bool _showCopyLinkTeachingTip = true;
private static ApplicationData appData = ApplicationData.GetDefault();

public static bool ShowCopyLinkTeachingTip
{
get
{
if (NativeMethods.IsAppPackaged)
{
object valueFromSettings = appData.LocalSettings.Values[SettingsKeys.ShowCopyLinkTeachingTip];
if (valueFromSettings == null)
{
appData.LocalSettings.Values[SettingsKeys.ShowCopyLinkTeachingTip] = true;
valueFromSettings = true;
}
return (bool)valueFromSettings;
}
else
{
return _showCopyLinkTeachingTip;
}
return SettingsHelper.Current.IsShowCopyLinkTeachingTip;
}

set
{
if (NativeMethods.IsAppPackaged)
{
appData.LocalSettings.Values[SettingsKeys.ShowCopyLinkTeachingTip] = value;

}
else
{
_showCopyLinkTeachingTip = value;
}
SettingsHelper.Current.IsShowCopyLinkTeachingTip = value;
}
}

Expand Down
192 changes: 0 additions & 192 deletions WinUIGallery/Helpers/SettingsHelper.cs

This file was deleted.

34 changes: 34 additions & 0 deletions WinUIGallery/Helpers/SettingsHelper/Internals/ListExtensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
using System.Collections.Generic;

namespace WinUIGallery.Helpers;

internal static class ListExtensions
{
public static void AddToFirst(this List<string> list, string item, bool isFavorite)
{
if (string.IsNullOrWhiteSpace(item))
return;

list.Remove(item);
list.Insert(0, item);

if (!isFavorite && SettingsHelper.MaxRecentlyVisitedSamples > 0 && list.Count > SettingsHelper.MaxRecentlyVisitedSamples)
{
list.RemoveRange(SettingsHelper.MaxRecentlyVisitedSamples, list.Count - SettingsHelper.MaxRecentlyVisitedSamples);
}
}

public static void AddToLast(this List<string> list, string item, bool isFavorite)
{
if (string.IsNullOrWhiteSpace(item))
return;

list.Remove(item);
list.Add(item);

if (!isFavorite && SettingsHelper.MaxRecentlyVisitedSamples > 0 && list.Count > SettingsHelper.MaxRecentlyVisitedSamples)
{
list.RemoveRange(0, list.Count - SettingsHelper.MaxRecentlyVisitedSamples);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using System.Collections.Generic;
using System.Text.Json.Serialization;

namespace WinUIGallery.Helpers;

[JsonSourceGenerationOptions(WriteIndented = true, GenerationMode = JsonSourceGenerationMode.Metadata)]
[JsonSerializable(typeof(Dictionary<string, System.Text.Json.JsonElement>))]
[JsonSerializable(typeof(Vector2Data))]
[JsonSerializable(typeof(Vector3Data))]
[JsonSerializable(typeof(SettingsHelper))]
internal partial class SettingsJsonContext : JsonSerializerContext
{
}
29 changes: 29 additions & 0 deletions WinUIGallery/Helpers/SettingsHelper/Internals/Vectors.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
namespace WinUIGallery.Helpers;

internal partial class Vector4Data
{
public float W { get; set; }
public float X { get; set; }
public float Y { get; set; }
public float Z { get; set; }

public static implicit operator System.Numerics.Vector4(Vector4Data d) => new(d.X, d.Y, d.Z, d.W);
public static implicit operator Vector4Data(System.Numerics.Vector4 v) => new() { X = v.X, Y = v.Y, Z = v.Z, W = v.W };
}
internal partial class Vector3Data
{
public float X { get; set; }
public float Y { get; set; }
public float Z { get; set; }

public static implicit operator System.Numerics.Vector3(Vector3Data d) => new(d.X, d.Y, d.Z);
public static implicit operator Vector3Data(System.Numerics.Vector3 v) => new() { X = v.X, Y = v.Y, Z = v.Z };
}
internal partial class Vector2Data
{
public float X { get; set; }
public float Y { get; set; }

public static implicit operator System.Numerics.Vector2(Vector2Data d) => new(d.X, d.Y);
public static implicit operator Vector2Data(System.Numerics.Vector2 v) => new() { X = v.X, Y = v.Y };
}
Loading