From 1bc19d3228c563fe0d0062cd1f86e4868fc2d0cc Mon Sep 17 00:00:00 2001 From: Dexrn ZacAttack Date: Thu, 15 Oct 2026 18:26:08 -0700 Subject: [PATCH 1/6] wip: start work on settings (untested as of yet) --- .../Core/Module/IUniScanClientAppModule.cs | 4 +- ...nAppInitializationPipeline.Initializers.cs | 21 ++- ...nAppInitializationPipeline.TaskContexts.cs | 21 ++- .../UniScanAppInitializationPipeline.cs | 5 +- .../UniScanApp.Initializers.cs | 31 +-- .../UniScan.Client.App/UniScanApp.axaml.cs | 3 + src/Core/UniScan.Core/Bootstrap.cs | 2 +- src/Core/UniScan.Core/Settings/IOption.cs | 79 ++++++++ .../UniScan.Core/Settings/SettingsManager.cs | 178 ++++++++++++++++++ .../Settings/Storage/IOptionStorage.cs | 54 ++++++ .../Node/Formatter/DeviceNodeFormatter.cs | 5 +- 11 files changed, 373 insertions(+), 30 deletions(-) create mode 100644 src/Core/UniScan.Core/Settings/IOption.cs create mode 100644 src/Core/UniScan.Core/Settings/SettingsManager.cs create mode 100644 src/Core/UniScan.Core/Settings/Storage/IOptionStorage.cs diff --git a/src/Client/UniScan.Client.App/Core/Module/IUniScanClientAppModule.cs b/src/Client/UniScan.Client.App/Core/Module/IUniScanClientAppModule.cs index 7c0de1c..6ff5fbf 100755 --- a/src/Client/UniScan.Client.App/Core/Module/IUniScanClientAppModule.cs +++ b/src/Client/UniScan.Client.App/Core/Module/IUniScanClientAppModule.cs @@ -2,13 +2,15 @@ using Microsoft.Extensions.DependencyInjection; using Shiki.ModuleManagement; using Shiki.ModuleManagement.Module; +using UniScan.Core.Settings; using UniScan.Platform; namespace UniScan.Client.App.Core.Module; -public class UniScanClientAppModuleInitializationArgs(UniScanApp app) : EventArgs +public class UniScanClientAppModuleInitializationArgs(UniScanApp app, SettingsManagerBuilder settingsBuilder) : EventArgs { public UniScanApp App { get; } + public SettingsManagerBuilder SettingsBuilder { get; } = settingsBuilder; } public interface IUniScanClientAppModule : IModule diff --git a/src/Client/UniScan.Client.App/Core/Pipeline/Initialization/UniScanAppInitializationPipeline.Initializers.cs b/src/Client/UniScan.Client.App/Core/Pipeline/Initialization/UniScanAppInitializationPipeline.Initializers.cs index 55c0373..eb6f7fe 100644 --- a/src/Client/UniScan.Client.App/Core/Pipeline/Initialization/UniScanAppInitializationPipeline.Initializers.cs +++ b/src/Client/UniScan.Client.App/Core/Pipeline/Initialization/UniScanAppInitializationPipeline.Initializers.cs @@ -65,8 +65,15 @@ public static async Task InitializeEnvironment(TaskContexts.PreEnvironment ctx, Log.Debug("Cache path: {Path}", ctx.StandardPaths.CachePath); #endif } + + public static void InitializeSettingsBuilder(UniScanAppInitializationPipeline.TaskContexts.PreSettings ctx, ITaskExecutionContext execCtx) + { + execCtx.Status.Value = "Initializing Settings builder"; + + //nothing to do here for now + } - public static void SetupClientMessagePackResolvers(TaskContexts.PreTranslations ctx, + public static void SetupClientMessagePackResolvers(TaskContexts.PreSettings ctx, ITaskExecutionContext execCtx) { execCtx.Status.Value = "Initializing client MessagePack resolvers"; @@ -82,7 +89,7 @@ public static void SetupClientMessagePackResolvers(TaskContexts.PreTranslations MessagePackSerializer.DefaultOptions = MessagePackSerializer.DefaultOptions.WithResolver(resolver); } - public static void InitializeSoftwareInfo(UniScanAppInitializationPipeline.TaskContexts.PreTranslations ctx, ITaskExecutionContext execCtx) + public static void InitializeSoftwareInfo(UniScanAppInitializationPipeline.TaskContexts.PreSettings ctx, ITaskExecutionContext execCtx) { execCtx.Status.Value = "Initializing SoftwareInfo"; @@ -90,7 +97,7 @@ public static void InitializeSoftwareInfo(UniScanAppInitializationPipeline.TaskC Log.Information("{Info}", UniScanApp.SoftwareInfo); } - public static void SetupBindableRegistry(TaskContexts.PreTranslations ctx, + public static void SetupBindableRegistry(TaskContexts.PreSettings ctx, ITaskExecutionContext execCtx) { execCtx.Status.Value = "Initializing bindables"; @@ -126,7 +133,7 @@ await mgr.ApplyLanguagesFromSourceAsync(new DirectoryKeyValueLanguageSource( return new TaskContexts.PreServiceProvider(ctx.UniScanApp, ctx.ServiceCollection, mgr, ctx.PlatformStandardPaths, ctx.PlatformFileManager, - ctx.PlatformDirectoryManager); + ctx.PlatformDirectoryManager, ctx.SettingsManager); } public static void SetupTextComponentResolver(TaskContexts.PreServiceProvider ctx, @@ -142,12 +149,12 @@ public static void SetupTextComponentResolver(TaskContexts.PreServiceProvider ct ctx.ServiceCollection.AddSingleton(); } - public static void SetupSSRSlotRegistry(TaskContexts.PreTranslations ctx, ITaskExecutionContext execCtx) + public static void SetupSSRSlotRegistry(TaskContexts.PreSettings ctx, ITaskExecutionContext execCtx) { execCtx.Status.Value = "Initializing serverside UI rendering slot registry"; ctx.ServiceCollection.AddSingleton(); } - + public static void SetupSSRUI(TaskContexts.PreServiceProvider ctx, ITaskExecutionContext execCtx) { execCtx.Status.Value = "Initializing serverside UI rendering"; @@ -183,7 +190,7 @@ public static TaskContexts.UniScanAppReady InitializeServiceProvider(TaskContext { execCtx.Status.Value = "Building ServiceProvider"; - return new TaskContexts.UniScanAppReady(ctx.UniScanApp, ctx.ServiceCollection.BuildServiceProvider()); + return new TaskContexts.UniScanAppReady(ctx.UniScanApp, ctx.SettingsManager, ctx.ServiceCollection.BuildServiceProvider()); } public static async Task InitializeRemotes(TaskContexts.UniScanAppReady ctx, diff --git a/src/Client/UniScan.Client.App/Core/Pipeline/Initialization/UniScanAppInitializationPipeline.TaskContexts.cs b/src/Client/UniScan.Client.App/Core/Pipeline/Initialization/UniScanAppInitializationPipeline.TaskContexts.cs index 2e5c563..b905ac3 100644 --- a/src/Client/UniScan.Client.App/Core/Pipeline/Initialization/UniScanAppInitializationPipeline.TaskContexts.cs +++ b/src/Client/UniScan.Client.App/Core/Pipeline/Initialization/UniScanAppInitializationPipeline.TaskContexts.cs @@ -3,6 +3,7 @@ using Shiki.FileSystem.Abstractions; using Shiki.Internationalization.Translation; using Shiki.TaskPipeline.Context; +using UniScan.Core.Settings; using UniScan.Platform; namespace UniScan.Client.App.Core.Pipeline.Initialization; @@ -20,13 +21,22 @@ public record PreEnvironment(UniScanApp UniScanApp) : ITaskContext public IPlatformDirectoryManager? DirectoryManager { get; set; } public IPlatformSerilogInitializer? SerilogInitializer { get; set; } } + + public record PreSettings(UniScanApp UniScanApp, ServiceCollection ServiceCollection, IPlatformStandardPaths PlatformStandardPaths, IPlatformFileManager PlatformFileManager, IPlatformDirectoryManager PlatformDirectoryManager) + : ITransitionableTaskContext + { + public SettingsManagerBuilder SettingsBuilder { get; } = new SettingsManagerBuilder(); + public SettingsManager? SettingsManager { get; set; } + + public static PreSettings TransitionFrom(PreEnvironment oldContext) => new(oldContext.UniScanApp, oldContext.ServiceCollection, oldContext.StandardPaths ?? throw new NullReferenceException(), oldContext.FileManager ?? throw new NullReferenceException(), oldContext.DirectoryManager ?? throw new NullReferenceException()); + } - public record PreTranslations(UniScanApp UniScanApp, ServiceCollection ServiceCollection, IPlatformStandardPaths PlatformStandardPaths, IPlatformFileManager PlatformFileManager, IPlatformDirectoryManager PlatformDirectoryManager) - : ITransitionableTaskContext + public record PreTranslations(UniScanApp UniScanApp, ServiceCollection ServiceCollection, IPlatformStandardPaths PlatformStandardPaths, IPlatformFileManager PlatformFileManager, IPlatformDirectoryManager PlatformDirectoryManager, SettingsManager SettingsManager) + : ITransitionableTaskContext { public TranslationManager? TranslationManager { get; set; } - public static PreTranslations TransitionFrom(PreEnvironment oldContext) => new(oldContext.UniScanApp, oldContext.ServiceCollection, oldContext.StandardPaths ?? throw new NullReferenceException(), oldContext.FileManager ?? throw new NullReferenceException(), oldContext.DirectoryManager ?? throw new NullReferenceException()); + public static PreTranslations TransitionFrom(PreSettings oldContext) => new(oldContext.UniScanApp, oldContext.ServiceCollection, oldContext.PlatformStandardPaths, oldContext.PlatformFileManager, oldContext.PlatformDirectoryManager, oldContext.SettingsManager ?? throw new NullReferenceException()); } public record PreServiceProvider( @@ -35,9 +45,10 @@ public record PreServiceProvider( TranslationManager TranslationManager, IPlatformStandardPaths PlatformStandardPaths, IPlatformFileManager PlatformFileManager, - IPlatformDirectoryManager PlatformDirectoryManager) + IPlatformDirectoryManager PlatformDirectoryManager, + SettingsManager SettingsManager) : ITaskContext; - public record UniScanAppReady(UniScanApp UniScanApp, IServiceProvider ServiceProvider) : ITaskContext; + public record UniScanAppReady(UniScanApp UniScanApp, SettingsManager SettingsManager, IServiceProvider ServiceProvider) : ITaskContext; } } \ No newline at end of file diff --git a/src/Client/UniScan.Client.App/Core/Pipeline/Initialization/UniScanAppInitializationPipeline.cs b/src/Client/UniScan.Client.App/Core/Pipeline/Initialization/UniScanAppInitializationPipeline.cs index b09e82f..ab9514d 100644 --- a/src/Client/UniScan.Client.App/Core/Pipeline/Initialization/UniScanAppInitializationPipeline.cs +++ b/src/Client/UniScan.Client.App/Core/Pipeline/Initialization/UniScanAppInitializationPipeline.cs @@ -22,12 +22,15 @@ public UniScanAppInitializationPipeline(UniScanApp app) { _logger = Log.ForContext(); }) - .ThenTransitionTo() + .ThenTransitionTo()//settingsbuilder created in here + .ThenRun(Initializers.InitializeSettingsBuilder) .ThenRun(Initializers.SetupClientMessagePackResolvers) .ThenRun(Initializers.InitializeSoftwareInfo) .ThenRun(Initializers.SetupSSRSlotRegistry) .ThenRunAsync(app.InitializeModules) .ThenRun(Initializers.SetupBindableRegistry) + .ThenRunAsync(app.InitializeSettings) + .ThenTransitionTo() .ThenRunToTransitionToAsync(Initializers.SetupTranslations) .ThenRun(Initializers.SetupTextComponentResolver) .ThenRun(Initializers.SetupSSRUI) diff --git a/src/Client/UniScan.Client.App/UniScanApp.Initializers.cs b/src/Client/UniScan.Client.App/UniScanApp.Initializers.cs index fbd3ea6..f045348 100644 --- a/src/Client/UniScan.Client.App/UniScanApp.Initializers.cs +++ b/src/Client/UniScan.Client.App/UniScanApp.Initializers.cs @@ -13,36 +13,45 @@ using UniScan.Client.App.Core.Module.Modules.Internal; using UniScan.Client.App.Core.Pipeline.Initialization; using UniScan.Client.Core; +using UniScan.Core.Settings; using UniScan.Platform; namespace UniScan.Client.App; public partial class UniScanApp { - internal async Task InitializeModules(UniScanAppInitializationPipeline.TaskContexts.PreTranslations ctx, ITaskExecutionContext execCtx) + internal async Task InitializeSettings(UniScanAppInitializationPipeline.TaskContexts.PreSettings ctx, + ITaskExecutionContext execCtx) + { + execCtx.Status.Value = "Loading settings"; + + var res = await ctx.SettingsBuilder.BuildAndLoadAsync(); + + ctx.SettingsManager = res.settingsManager; + ctx.ServiceCollection.AddSingleton(_ => res.settingsManager); + } + + + internal async Task InitializeModules(UniScanAppInitializationPipeline.TaskContexts.PreSettings ctx, ITaskExecutionContext execCtx) { execCtx.Status.Value = "Initializing modules"; var moduleStorageBuilder = new ModuleStorageBuilder() .WithModuleOfType(null); - - await using ServiceProvider serviceProvider = ctx.ServiceCollection.BuildServiceProvider(); - IPlatformStandardPaths standardPaths = serviceProvider.GetRequiredService(); - IPlatformDirectoryManager directoryManager = serviceProvider.GetRequiredService(); - string moduleDir = Path.Combine(standardPaths.DataPath, "modules"); - if (!(await directoryManager.ExistsAsync(moduleDir))) + string moduleDir = Path.Combine(ctx.PlatformStandardPaths.DataPath, "modules"); + if (!(await ctx.PlatformDirectoryManager.ExistsAsync(moduleDir))) { Log.Information("Creating new modules folder"); - await directoryManager.CreateDirectoryAsync(moduleDir); + await ctx.PlatformDirectoryManager.CreateDirectoryAsync(moduleDir); } - moduleStorageBuilder.WithSource(new AssembliesModuleSource(moduleDir), new UniScanClientAppModuleInitializationArgs(this)); + moduleStorageBuilder.WithSource(new AssembliesModuleSource(moduleDir), new UniScanClientAppModuleInitializationArgs(this, ctx.SettingsBuilder)); string localModules = Path.Combine(Environment.CurrentDirectory, "modules"); - if (await directoryManager.ExistsAsync(localModules)) + if (await ctx.PlatformDirectoryManager.ExistsAsync(localModules)) { - moduleStorageBuilder.WithSource(new AssembliesModuleSource(localModules), new UniScanClientAppModuleInitializationArgs(this)); + moduleStorageBuilder.WithSource(new AssembliesModuleSource(localModules), new UniScanClientAppModuleInitializationArgs(this, ctx.SettingsBuilder)); } ModuleStorage = await moduleStorageBuilder.BuildAsync(); diff --git a/src/Client/UniScan.Client.App/UniScanApp.axaml.cs b/src/Client/UniScan.Client.App/UniScanApp.axaml.cs index f06211c..6945043 100755 --- a/src/Client/UniScan.Client.App/UniScanApp.axaml.cs +++ b/src/Client/UniScan.Client.App/UniScanApp.axaml.cs @@ -23,6 +23,7 @@ using UniScan.Client.Core; using UniScan.Client.Core.DI.Factory; using UniScan.Client.Core.Module.Modules.Internal; +using UniScan.Core.Settings; using UniScan.Network.Data.Info.Software; using UniScan.Platform; using MainView = UniScan.Client.App.Views.MainView; @@ -63,6 +64,8 @@ public partial class UniScanApp : Application public static string VersionString => $"UniScan Client v{SoftwareInfo.AppInfo.Version} ({PlatformAttribute!.Identifier} v{PlatformVersion})"; + public SettingsManager Manager { get; private set; } = null!; + public ModuleStorage? ModuleStorage { get; diff --git a/src/Core/UniScan.Core/Bootstrap.cs b/src/Core/UniScan.Core/Bootstrap.cs index 69dedbc..df7fd13 100644 --- a/src/Core/UniScan.Core/Bootstrap.cs +++ b/src/Core/UniScan.Core/Bootstrap.cs @@ -11,7 +11,7 @@ using Shiki.Internationalization; using Shiki.Internationalization.Component; using UniScan.Core.State.Node; -using UniScan.Network.Formatter.Device; +using UniScan.Core.State.Node.Formatter; namespace UniScan.Core; diff --git a/src/Core/UniScan.Core/Settings/IOption.cs b/src/Core/UniScan.Core/Settings/IOption.cs new file mode 100644 index 0000000..4456504 --- /dev/null +++ b/src/Core/UniScan.Core/Settings/IOption.cs @@ -0,0 +1,79 @@ +using ObservableCollections; +using R3; +using Shiki.Common.Identity; +using Shiki.Common.Result; +using Shiki.Internationalization.Component; + +namespace UniScan.Core.Settings; + +public interface IReadOnlyOption +{ + Identifier Identifier { get; } + + ITextComponent Name { get; } + ITextComponent Description { get; } + + Observable ValueChanged { get; } + + Type Type { get; } + + object? GetValue(); +} + +public interface IOption : IReadOnlyOption +{ + BooleanResult SetValue(object? value); +} + +public interface IReadOnlyOption : IReadOnlyOption +{ + new T GetValue(); +} + +public interface IOption : IOption, IReadOnlyOption +{ + Observable IReadOnlyOption.ValueChanged => Value.AsObservable().Select(_ => Unit.Default).Skip(1); + + IBindableReactiveProperty Value { get; } + + Type IReadOnlyOption.Type => typeof(T); + + + BooleanResult IOption.SetValue(object? value) => value is T v ? SetValue(v) : new InvalidOperationException("Given value is not of type " + typeof(T)); + BooleanResult SetValue(T value); + + object? IReadOnlyOption.GetValue() => GetValue(); + T IReadOnlyOption.GetValue() => Value.Value; +} + +public class SettingOption : IOption +{ + public Identifier Identifier { get; } + public Identifier CategoryIdentifier { get; } + + public required ITextComponent Name { get; init; } + public required ITextComponent Description { get; init; } + + public IBindableReactiveProperty Value { get; } + + public SettingOption(Identifier id, Identifier category, T defaultValue) + { + Identifier = id; + CategoryIdentifier = category; + Value = new BindableReactiveProperty(defaultValue); + } + + public BooleanResult SetValue(T value) + { + Value.Value = value; + return BooleanResult.Successful; + } +} + +public class SettingsCategory(Identifier id, ITextComponent name) +{ + public Identifier Id { get; } = id; + public ITextComponent Name { get; } = name; + + public Identifier? Parent { get; init; } +} \ No newline at end of file diff --git a/src/Core/UniScan.Core/Settings/SettingsManager.cs b/src/Core/UniScan.Core/Settings/SettingsManager.cs new file mode 100644 index 0000000..92b2879 --- /dev/null +++ b/src/Core/UniScan.Core/Settings/SettingsManager.cs @@ -0,0 +1,178 @@ +using System.Collections.Immutable; +using ObservableCollections; +using R3; +using Serilog; +using Shiki.Common.Identity; +using Shiki.Common.Result; +using Shiki.FileSystem.Storage; +using UniScan.Core.Settings.Storage; + +namespace UniScan.Core.Settings; + +public class SettingsManagerBuilder +{ + public readonly record struct OptionMetadata(IOption Option, Identifier Storage); + + private readonly Dictionary _options = []; + private readonly Dictionary _categories = []; + private readonly Dictionary _storages = []; + + public BooleanResult TryAddCategory(SettingsCategory category) + { + if (!_categories.TryAdd(category.Id, category)) + return new InvalidOperationException("Category already exists"); + + return BooleanResult.Successful; + } + + public BooleanResult TryAddOption(IOption option, Identifier storage) + { + if (!_storages.ContainsKey(storage)) + { + return new KeyNotFoundException("Storage not found"); + } + + if (!_options.TryAdd(option.Identifier, new OptionMetadata(option, storage))) + { + return new InvalidOperationException("Option already exists"); + } + + return BooleanResult.Successful; + } + + public BooleanResult TryAddStorage(Identifier id, IOptionStorage storage) + { + if (!_storages.TryAdd(id, storage)) + throw new InvalidOperationException("Storage already exists"); + + return BooleanResult.Successful; + } + + public SettingsManager Build() + { + //todo + return new SettingsManager(_options, _categories, _storages); + } + + public async ValueTask<(SettingsManager settingsManager, IReadOnlyCollection> Errors)> BuildAndLoadAsync()//todo we can create another result type later that holds the value with errors + { + SettingsManager b = Build(); + var errors = await b.LoadAsync(); + + return (b, errors); + } +} + +public class SettingsManager : IDisposable +{ + private readonly record struct LockableOptionStorageHolder(IOptionStorage OptionStorage, SemaphoreSlim Semaphore); + + private readonly CompositeDisposable _disposables = new CompositeDisposable(); + + private readonly Dictionary _options = []; + private readonly Dictionary _categories = []; + private readonly Dictionary _storages = []; + + private readonly Subject _dirty = new(); + + private bool _loadLock = false; + + private ILogger _logger = Log.ForContext(); + + internal SettingsManager(Dictionary options, Dictionary categories, Dictionary storages) + { + _options = options; + _categories = categories; + _storages = storages.ToDictionary(kvp => kvp.Key, kvp => new LockableOptionStorageHolder(kvp.Value, new SemaphoreSlim(1,1))); + + foreach (SettingsManagerBuilder.OptionMetadata option in _options.Values) + { + option.Option.ValueChanged.Where(_ => !_loadLock).Subscribe(_ => _dirty.OnNext(option)).AddTo(_disposables); + } + + _dirty.Chunk(TimeSpan.FromMilliseconds(500), TimeProvider.System) + .Where(c => c.Length > 0) + .Subscribe(ids => + { + var u = ids.DistinctBy(m => m.Option.Identifier).GroupBy(m => m.Storage).ToImmutableArray(); + + foreach (var g in u) + { + if (_storages.TryGetValue(g.Key, out LockableOptionStorageHolder storage)) + { + //TODO this is probably slow, lets fix it later. + var changed = g.Select(m => m.Option).ToImmutableList(); + var all = _options.Values.Where(m => m.Storage == g.Key) + .Select(m => m.Option) + .ToImmutableList(); + + _ = RunObservedSave(storage, changed, all); + } + } + }).AddTo(_disposables); + } + + private async Task RunObservedSave(LockableOptionStorageHolder holder, + IReadOnlyCollection changed, + IReadOnlyCollection allOptions) + { + BooleanResult res = await RunSave(holder, changed, allOptions); + if (!res.IsSuccessful) + { + _logger.Error(res.Error, "Observed save failed!"); + } + } + + private async ValueTask> RunSave(LockableOptionStorageHolder holder, + IReadOnlyCollection changed, + IReadOnlyCollection allOptions) + { + await holder.Semaphore.WaitAsync(); + + var res = await holder.OptionStorage.SaveAsync(changed, allOptions); + holder.Semaphore.Release(); + + return res; + } + + public async ValueTask>> LoadAsync() + { + _loadLock = true;//maybe should use volatile or some lock but too lazy + try + { + var t = _storages.Select(async kvp => + { + LockableOptionStorageHolder holder = kvp.Value; + + var opt = _options.Values.Where(m => m.Storage == kvp.Key).Select(m => m.Option).ToImmutableList(); + + await holder.Semaphore.WaitAsync(); + try + { + return await holder.OptionStorage.LoadAsync(opt); + } + finally + { + holder.Semaphore.Release(); + } + }); + + return await Task.WhenAll(t);//maybe should make ResultCollection later + } + finally + { + _loadLock = false; + } + } + + public void Dispose() + { + _dirty.Dispose(); + _disposables.Dispose(); + + foreach (LockableOptionStorageHolder holder in _storages.Values) + { + holder.Semaphore.Dispose(); + } + } +} \ No newline at end of file diff --git a/src/Core/UniScan.Core/Settings/Storage/IOptionStorage.cs b/src/Core/UniScan.Core/Settings/Storage/IOptionStorage.cs new file mode 100644 index 0000000..05cd736 --- /dev/null +++ b/src/Core/UniScan.Core/Settings/Storage/IOptionStorage.cs @@ -0,0 +1,54 @@ +using Shiki.Common.Result; +using Shiki.FileSystem.Storage; + +namespace UniScan.Core.Settings.Storage; + +public interface IOptionStorage +{ + ValueTask> LoadAsync(IReadOnlyCollection options); + ValueTask> SaveAsync(IReadOnlyCollection changed, IReadOnlyCollection allOptions); +} + +public class SingleOptionStorage(IStorage> storage) : IOptionStorage +{ + public async ValueTask> LoadAsync(IReadOnlyCollection options) + { + if (options.Count == 0) + return new ArgumentException("Options is empty", nameof(options)); + + if (options.Count > 1) + return new ArgumentException("Multiple options provided for single option storage", nameof(options)); + + IOption opt = options.First(); + + try + { + T loaded = await storage.LoadAsync(); + opt.SetValue(loaded); + } + catch (Exception e) + { + return e; + } + + return BooleanResult.Successful; + } + + public async ValueTask> SaveAsync(IReadOnlyCollection changed, + IReadOnlyCollection allOptions) + { + if (changed.Count == 0) + return new ArgumentException("Options is empty", nameof(allOptions)); + + if (changed.Count > 1) + return new ArgumentException("Multiple options provided for single option storage", nameof(allOptions)); + + IOption opt = changed.First(); + + if (opt.GetValue() is not T d) + return new ArgumentException("Changed value is not of correct type for this option storage"); + + await storage.SaveAsync(d); + return BooleanResult.Successful; + } +} \ No newline at end of file diff --git a/src/Core/UniScan.Core/State/Node/Formatter/DeviceNodeFormatter.cs b/src/Core/UniScan.Core/State/Node/Formatter/DeviceNodeFormatter.cs index 59f5c83..fcb5323 100644 --- a/src/Core/UniScan.Core/State/Node/Formatter/DeviceNodeFormatter.cs +++ b/src/Core/UniScan.Core/State/Node/Formatter/DeviceNodeFormatter.cs @@ -2,15 +2,12 @@ using System.Reflection; using MessagePack; using MessagePack.Formatters; -using Serilog; using Shiki.Common.Identity; -using Shiki.Common.Serialization.Polymorphism; using Shiki.Common.Serialization.Registry; using Shiki.Common.Serialization.Registry.Validators; -using UniScan.Core.State.Node; using UniScan.Core.State.Node.Nodes; -namespace UniScan.Network.Formatter.Device; +namespace UniScan.Core.State.Node.Formatter; public abstract class DeviceNodeTypeRegistryValidator : IHasAttributeTypeRegistryValidator { From 0921ef32656ab98ca2e882eabb13764127c59ff1 Mon Sep 17 00:00:00 2001 From: Dexrn ZacAttack <60078656+DexrnZacAttack@users.noreply.github.com> Date: Wed, 14 Oct 2026 21:12:05 -0700 Subject: [PATCH 2/6] feat: logos (thx Unomelon!!!) (#32) * feat: logos (thx Unomelon!!!) * chore: add logo credits, remove avalonia logo notice --- README.md | 6 +++++- .../wwwroot/app.webmanifest | 6 +++--- .../wwwroot/index.html | 12 ++++++------ src/Client/UniScan.Client.App/Assets/README.md | 6 +++++- .../Assets/avalonia-logo.ico | Bin 175875 -> 0 bytes .../Assets/logo.1024x1024.png | Bin 0 -> 6184 bytes .../UniScan.Client.App/Assets/logo.128x128.png | Bin 0 -> 685 bytes .../UniScan.Client.App/Assets/logo.192x192.png | Bin 0 -> 751 bytes .../UniScan.Client.App/Assets/logo.256x256.png | Bin 0 -> 870 bytes .../UniScan.Client.App/Assets/logo.32x32.png | Bin 0 -> 630 bytes .../UniScan.Client.App/Assets/logo.512x512.png | Bin 0 -> 1828 bytes .../UniScan.Client.App/Assets/logo.64x64.png | Bin 0 -> 598 bytes .../UniScan.Client.App/Assets/logo.96x96.png | Bin 0 -> 627 bytes src/Client/UniScan.Client.App/Assets/logo.ico | Bin 0 -> 119510 bytes src/Client/UniScan.Client.App/Assets/logo.svg | 1 + .../UniScan.Client.App/Assets/logo_128x128.png | Bin 3266 -> 0 bytes .../UniScan.Client.App/Assets/logo_192x192.png | Bin 4790 -> 0 bytes .../UniScan.Client.App/Assets/logo_400x400.png | Bin 11731 -> 0 bytes .../UniScan.Client.App/Assets/logo_512x512.png | Bin 11983 -> 0 bytes .../UniScan.Client.App.csproj | 8 ++++---- .../Views/Global/LoadingView.axaml | 2 +- .../UniScan.Client.App/Views/MainWindow.axaml | 2 +- .../UniScan.Server.Core/UniScanServer.cs | 2 +- template/README.md.template | 6 +++++- 24 files changed, 32 insertions(+), 19 deletions(-) delete mode 100755 src/Client/UniScan.Client.App/Assets/avalonia-logo.ico create mode 100644 src/Client/UniScan.Client.App/Assets/logo.1024x1024.png create mode 100644 src/Client/UniScan.Client.App/Assets/logo.128x128.png create mode 100644 src/Client/UniScan.Client.App/Assets/logo.192x192.png create mode 100644 src/Client/UniScan.Client.App/Assets/logo.256x256.png create mode 100644 src/Client/UniScan.Client.App/Assets/logo.32x32.png create mode 100644 src/Client/UniScan.Client.App/Assets/logo.512x512.png create mode 100644 src/Client/UniScan.Client.App/Assets/logo.64x64.png create mode 100644 src/Client/UniScan.Client.App/Assets/logo.96x96.png create mode 100644 src/Client/UniScan.Client.App/Assets/logo.ico create mode 100644 src/Client/UniScan.Client.App/Assets/logo.svg delete mode 100644 src/Client/UniScan.Client.App/Assets/logo_128x128.png delete mode 100644 src/Client/UniScan.Client.App/Assets/logo_192x192.png delete mode 100644 src/Client/UniScan.Client.App/Assets/logo_400x400.png delete mode 100644 src/Client/UniScan.Client.App/Assets/logo_512x512.png diff --git a/README.md b/README.md index 1740102..c2ebfb6 100644 --- a/README.md +++ b/README.md @@ -31,4 +31,8 @@ it up to the internet for others to listen to, and control it yourself by loggin | [UniScan.Client.App.Platform.Browser](src/Client/UniScan.Client.App.Platform.Browser) | 0.1.3 | UniScan client for web browsers (https://uniscan.dexrn.me) | | [UniScan.Client.App.Platform.Desktop](src/Client/UniScan.Client.App.Platform.Desktop) | 0.0.3 | UniScan client for desktop | | [UniScan.Client.App.Platform.iOS](src/Client/UniScan.Client.App.Platform.iOS) | 0.0.1 | UniScan client for iOS | -| [UniScan.Modules.DebugModule](src/Modules/UniScan.Modules.DebugModule) | 0.0.1 | | \ No newline at end of file +| [UniScan.Modules.DebugModule](src/Modules/UniScan.Modules.DebugModule) | 0.0.1 | | + +## Credits +(in the future, these will be included in the About page.) +- [Unobtainable Melon (Unomelon)](https://bsky.app/profile/unomelon.bsky.social) | Creating the base of the logo for me to work off of. (thus helping me learn a little about pixel art in the process) \ No newline at end of file diff --git a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/app.webmanifest b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/app.webmanifest index 5fdaad6..a4371e7 100644 --- a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/app.webmanifest +++ b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/app.webmanifest @@ -3,17 +3,17 @@ "name": "UniScan Web", "icons": [ { - "src": "/assets/logo_128x128.png", + "src": "/assets/logo.128x128.png", "sizes": "128x128", "type": "image/png" }, { - "src": "/assets/logo_512x512.png", + "src": "/assets/logo.512x512.png", "sizes": "192x192", "type": "image/png" }, { - "src": "/assets/logo_512x512.png", + "src": "/assets/logo.512x512.png", "sizes": "512x512", "type": "image/png" } diff --git a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/index.html b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/index.html index 5217ea7..110aee1 100755 --- a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/index.html +++ b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/index.html @@ -4,7 +4,7 @@ UniScan Web - + @@ -34,11 +34,11 @@ - - - - - + + + + + diff --git a/src/Client/UniScan.Client.App/Assets/README.md b/src/Client/UniScan.Client.App/Assets/README.md index 979155e..7a055ff 100644 --- a/src/Client/UniScan.Client.App/Assets/README.md +++ b/src/Client/UniScan.Client.App/Assets/README.md @@ -1 +1,5 @@ -AVALONIA LOGOS ARE TEMP UNTIL I CAN EITHER MAKE MY OWN LOGO OR FIND SOMEONE WHO WILL WANT TO MAKE ONE FOR ME \ No newline at end of file +Thanks to [Unobtainable Melon (Unomelon)](https://bsky.app/profile/unomelon.bsky.social) for drawing the bases of the logos for me to work off of to make the final product! + +There is also a handheld version that will be added when logo switching is added. + +In the future, the displays on the devices will be colorable as a setting. (kind of like how the BCD996P2 does it) \ No newline at end of file diff --git a/src/Client/UniScan.Client.App/Assets/avalonia-logo.ico b/src/Client/UniScan.Client.App/Assets/avalonia-logo.ico deleted file mode 100755 index f7da8bb5863b7cecec2adcdebd948fe2f9418d0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175875 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 KpUXO@geCwC!0?{{ literal 0 HcmV?d00001 diff --git a/src/Client/UniScan.Client.App/Assets/logo.192x192.png b/src/Client/UniScan.Client.App/Assets/logo.192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..c19071eae25e9a15d55f52f63edfc1c250cfd165 GIT binary patch literal 751 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE8Azrw%`pX13dtTpz6=aiY77hwEes65fI1b!abneXSpB`%iwK0|i`2{mLJiCzw1`W6kC7HRY#U+Wk1!#Iq4Xlh!AeNLp$gTrAda9?3 zV@SoVx3?Vg4jBkI1bT7nUYK_8|CXtb&U%C?Jyx+e_<5Vh*1 zDJY5q&UvucwqDYH+VH865g4OvE^a!qQ|d*n#Y7lOfdXIHPDnHB6nrUW%8+$_>zaqHKt uQiip!`8S+ph+@C6%Z>pUzLS=ES4z)+>ez|hdb!0-zw z)bN6Vq11qZ;Z*_ygVhWM2JwP9y8>;162<{OA+A6=wxHKNFtL5n?xJ_kH9Jo`?R&1{ zH)Z?j>k(mL^;MN-M#jp@%2HBNo}QkLcJ@o>&bK%4SB?q7VfeuR!7TK54EKa)i?cjXF$2B@F|pzaYd-Wfr^Hxj*Hj0a-Ob!F6*2UngDyl B_cs6l literal 0 HcmV?d00001 diff --git a/src/Client/UniScan.Client.App/Assets/logo.32x32.png b/src/Client/UniScan.Client.App/Assets/logo.32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..8a2ee01a78135ffdc79d129a42f542ca3ca49ab3 GIT binary patch literal 630 zcmV-+0*U>JP)Px%FiAu~R9J=WmCs8XK@`WoTT49{>8VLYA)rFBEDcnG2X9^ip(s*Vg3^PRUKI2q z{tY>_REQTn_A_9fcpS|{bTzkcj+_q$qeU{jsg5cdg49-s%8aMv%*g8 zC(Z-n`@D@<+llv0iR(ZUFC>rBq ztU!O)Z*rr2E~|+KlgZjyV0C@3P<=AvxB=XY??U8Fm@*7@66;bv7gU>DTmCm;$}pUF z!$a)ZvViXsAppSg9^jq}s+3_kB7`O;bW%V?Cxs%{39bXBLh)XUQ#D8rxD(IL|4TQk z*Xsa)SS*IKQ(KzX6AB^nHbTyk03u~{EylpV0`3&ja=c#m_9|xj06fHH^sFbPYh;b<{?`cM Q&;S4c07*qoM6N<$f;O%gVE_OC literal 0 HcmV?d00001 diff --git a/src/Client/UniScan.Client.App/Assets/logo.512x512.png b/src/Client/UniScan.Client.App/Assets/logo.512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..7dff1be8025a9b0489d8aa5589f401930e493369 GIT binary patch literal 1828 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&w@L)Zt|+CxDbfvPY0F14ES>14Ba#1H&(% zP{RubhEf9thF1v;3|2E37{m+a>?NMQ zuI#V4_?eBAg8K~XfkLV!t`Q|Ei6yC4$wjF^iowXh$V}JJK-bVT#K73f*v!hlheV zPkFjHhE&{od)Kk(iUEVmMHL5y7KZQky4ATMPIBAl*44ibu?gG1H2c|0&q*o-QS83w zv%ecnu{(czs+>SW!AnL)j_Kqx9yiwQjC9ChbEssP!cK@VW{7X^+gE4O5GrtAE~Y9T z7#@T{#XlDPmN!flwmVKUGomWr5su1-^8Tnd>^9}AF=bfofK?t{@PQ!1CH;yw`vg82 zWwJeZk;br(AI&0k9Weg&-%TAK|MxP-^Rd8$AoPK~pmdH28aNtmF2EGVCUW2>L)u$D zP|hI?(itT9Gs+f}zkVU^#IPfhum*;u41H{db_e=BAK#zP`{0cuQ65%cOkhj8_Jd({ z{EiJ(`>&=ktP86GWgCLPPQBr38RHWB{btMyY#2@vARbKqy6uKu!`0t+_kP*O(Bl1` z+hGSK3~Sjx&yyZ6SZyz{v1Q|jC=U^YTnwx&XCF&Ajj|&KM^Z;;P;Yv_3wr+zh8LsS^n;PMHENi;_P5* zxXLcaUS+!@e{vY(nR(^ke`#^xQj8+*!7wA%Ug|*3hggP}C=$3h54eD7kSRj8M*M)@ zkDFijJL6J_B3|Iiu=%wy!)|7IUIkec8C;wg#sg~v4=iTC&$@xT?(3es|ILE9lp>4Q za51dr|B=19zu9}gfRVHevK&tKItGV+-iA*M8vKNaM+_xviBQI%@%|wL;d0mWQrUlo Xok|lwN-7$FsxSsmS3j3^P6I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N$^3z$e5NNXHiRx(6nD-yuKRwn4YGW)3@(X5gcy=QV$YC$>^mS!_ z#l_ETq!ip|SPv9ZEpd$~Nl7e8wMs5Z1yT$~21aJOh6cKZrXdE#R>o#l#zxu(237_J z*Dlv8qiD#@PsvQH#I0d@-_iL%4H|G8N-}d(i%Sx73()kK8dw>dKrAVHkX;AV^T*T0 zF(l&f+pCHEE(SaeiO=6;WgY+jf9v$DuA3a2i{$ro`fpNS$?N*@i}~I#t<$d?%D3Eg z5nHfoSvJ!QgUw$WesD0=99!hUmXIs$+%WOafnR2N@=A;h*BMU>_Aqt`h%;^ZBG)i! zsT70kjJ5q;IrHQU1Q|+WuQS*^(7(#qv4G)6;nd9>9H;pUm_%02Wq31zq0E@~z^yco zZ5wauIL%>6`T0-mNG8KYIi5gf2bY|^bBf>nc3r>jGSiQ;+rRb)vb|UrbP0l+XkKh3wXf literal 0 HcmV?d00001 diff --git a/src/Client/UniScan.Client.App/Assets/logo.96x96.png b/src/Client/UniScan.Client.App/Assets/logo.96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..87723a1b59f8101c1502047dc545178c6c42ee18 GIT binary patch literal 627 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy!Sl0AZa85pY67#JE_7#My5g&JNk zFq9fFFuY1&V6d9Oz#v{QXIG#NP{KICC&U#<#}@Ru2PU>J+FkVSxn}2Sr+v?L{HAO_ zeLW&9tiGz!%*a?-Sy@U-%G1-+(awJ9+?m%uJ=O+lV=M{s3ubV5b|VeQVK4FYb!C6W z#m{V{6x?T64-`@@ag8WRNi0dVN-jzTQVd20MrOK(2D*l(AqK`)#%5N=M%o4jRt5&w zF4rofXvob^$xN%ntzmiJ(fL3P8gLs*GILXlOA>Pn(DaxZSQ(o@EGc`CT?cfuq^FBx zNXEUlH*WJaEATWtJbTjW$mQSmZ-u01cZrrh65{&L8s7GP(V}C=7l&y5-T1t5)v8l6 z6>m#VUSPUX`gX0HLtErj&JEVge0!$9HPC8MR<~pjSS(>tF==~VFbji1aY8oRF$o3^ z$(zhO@)?hOXS^S7-oU@<@%;EdFVdJQ*cfV-F*vXsslCdak-*?kp175((V>g6i}`o> z|A0*mb00U@PR=_Jb^FZ6$#>>xrl|0JxT~)w{gV0I&fx9I3eV@{9q`>6bT{PwcfTx& zHW`LpyK3fC0FVdQ&MBb@ E0AA|gIsgCw literal 0 HcmV?d00001 diff --git a/src/Client/UniScan.Client.App/Assets/logo.ico b/src/Client/UniScan.Client.App/Assets/logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..9069329330b441561ee3f20f3ed08cdb831d4bb1 GIT binary patch literal 119510 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 literal 0 HcmV?d00001 diff --git a/src/Client/UniScan.Client.App/Assets/logo.svg b/src/Client/UniScan.Client.App/Assets/logo.svg new file mode 100644 index 0000000..df342ed --- /dev/null +++ b/src/Client/UniScan.Client.App/Assets/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Client/UniScan.Client.App/Assets/logo_128x128.png b/src/Client/UniScan.Client.App/Assets/logo_128x128.png deleted file mode 100644 index b704696df5f5ff6a06c2b1d5d71cd61bba61ba3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3266 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 O07KpDn0jrOnEwC_6vRpZ diff --git a/src/Client/UniScan.Client.App/Assets/logo_400x400.png b/src/Client/UniScan.Client.App/Assets/logo_400x400.png deleted file mode 100644 index 3c39845930eae5a98e094bdada0da2d6646bf9ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11731 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 diff --git a/src/Client/UniScan.Client.App/Assets/logo_512x512.png b/src/Client/UniScan.Client.App/Assets/logo_512x512.png deleted file mode 100644 index 29b4d8c78a33fb85a7b70acee16a869824c2585c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11983 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 f8impP8^4#fjVTeg3pD)j#Vx|Rb$ diff --git a/src/Client/UniScan.Client.App/UniScan.Client.App.csproj b/src/Client/UniScan.Client.App/UniScan.Client.App.csproj index 19bfd96..c5e858b 100755 --- a/src/Client/UniScan.Client.App/UniScan.Client.App.csproj +++ b/src/Client/UniScan.Client.App/UniScan.Client.App.csproj @@ -196,19 +196,19 @@ - + true PreserveNewest - + true PreserveNewest - + true PreserveNewest - + true PreserveNewest diff --git a/src/Client/UniScan.Client.App/Views/Global/LoadingView.axaml b/src/Client/UniScan.Client.App/Views/Global/LoadingView.axaml index 0e0887e..487942f 100644 --- a/src/Client/UniScan.Client.App/Views/Global/LoadingView.axaml +++ b/src/Client/UniScan.Client.App/Views/Global/LoadingView.axaml @@ -9,7 +9,7 @@ x:DataType="global:LoadingViewModel"> - + diff --git a/src/Client/UniScan.Client.App/Views/MainWindow.axaml b/src/Client/UniScan.Client.App/Views/MainWindow.axaml index 2ff741c..b1078cc 100755 --- a/src/Client/UniScan.Client.App/Views/MainWindow.axaml +++ b/src/Client/UniScan.Client.App/Views/MainWindow.axaml @@ -5,7 +5,7 @@ xmlns:views2="clr-namespace:UniScan.Client.App.Views" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="UniScan.Client.App.Views.MainWindow" - Icon="/Assets/avalonia-logo.ico" + Icon="/Assets/logo.ico" Title="UniScan"> diff --git a/src/Server/UniScan.Server.Core/UniScanServer.cs b/src/Server/UniScan.Server.Core/UniScanServer.cs index c31227f..739f433 100755 --- a/src/Server/UniScan.Server.Core/UniScanServer.cs +++ b/src/Server/UniScan.Server.Core/UniScanServer.cs @@ -87,7 +87,7 @@ public class UniScanServer Uri("https://github.com/UniScanProject/UniScan")), new RemoteLink(new - Uri("https://uniscan.dexrn.me/assets/logo_512x512.png"), + Uri("https://uniscan.dexrn.me/assets/logo.512x512.png"), "UniScan Web", new Uri("https://uniscan.dexrn.me")), diff --git a/template/README.md.template b/template/README.md.template index 2520378..60dd13d 100644 --- a/template/README.md.template +++ b/template/README.md.template @@ -11,4 +11,8 @@ it up to the internet for others to listen to, and control it yourself by loggin | Name | Version | Description | |:-----------------------------------------------------------------------------------------------:|:-------:|------------------------------------------------| -{ProjectRows} \ No newline at end of file +{ProjectRows} + +## Credits +(in the future, these will be included in the About page.) +- [Unobtainable Melon (Unomelon)](https://bsky.app/profile/unomelon.bsky.social) | Creating the base of the logo for me to work off of. (thus helping me learn a little about pixel art in the process) \ No newline at end of file From 5e768af949943267c293a3f8748585edbfab2097 Mon Sep 17 00:00:00 2001 From: Dexrn ZacAttack Date: Wed, 14 Oct 2026 21:15:04 -0700 Subject: [PATCH 3/6] chore: update readme --- README.md | 5 ++++- template/README.md.template | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c2ebfb6..2e43049 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,10 @@ -# UniScan +
+UniScan logo +

UniScan

![GitHub Release](https://img.shields.io/github/v/release/UniScanProject/UniScan?sort=date&filter=UniScan.Client.App%2F*&label=Client) ![GitHub Release](https://img.shields.io/github/v/release/UniScanProject/UniScan?sort=date&filter=UniScan.Server.Host%2F*&display_name=tag&label=Server) +
--- Modular scanner/radio client and multi-broadcast server. Plug in a scanner, set it up in the server software, and open diff --git a/template/README.md.template b/template/README.md.template index 60dd13d..8a0236b 100644 --- a/template/README.md.template +++ b/template/README.md.template @@ -1,7 +1,10 @@ -# UniScan +
+UniScan logo +

UniScan

![GitHub Release](https://img.shields.io/github/v/release/UniScanProject/UniScan?sort=date&filter=UniScan.Client.App%2F*&label=Client) ![GitHub Release](https://img.shields.io/github/v/release/UniScanProject/UniScan?sort=date&filter=UniScan.Server.Host%2F*&display_name=tag&label=Server) +
--- Modular scanner/radio client and multi-broadcast server. Plug in a scanner, set it up in the server software, and open From cd609cd6f52092f5df4c1268476dcbd3a5e86b04 Mon Sep 17 00:00:00 2001 From: Dexrn ZacAttack Date: Wed, 14 Oct 2026 21:17:12 -0700 Subject: [PATCH 4/6] fix: remove --- from readme --- README.md | 1 - template/README.md.template | 1 - 2 files changed, 2 deletions(-) diff --git a/README.md b/README.md index 2e43049..455010e 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,6 @@ ![GitHub Release](https://img.shields.io/github/v/release/UniScanProject/UniScan?sort=date&filter=UniScan.Client.App%2F*&label=Client) ![GitHub Release](https://img.shields.io/github/v/release/UniScanProject/UniScan?sort=date&filter=UniScan.Server.Host%2F*&display_name=tag&label=Server) ---- Modular scanner/radio client and multi-broadcast server. Plug in a scanner, set it up in the server software, and open it up to the internet for others to listen to, and control it yourself by logging into an admin user. diff --git a/template/README.md.template b/template/README.md.template index 8a0236b..4bd1483 100644 --- a/template/README.md.template +++ b/template/README.md.template @@ -5,7 +5,6 @@ ![GitHub Release](https://img.shields.io/github/v/release/UniScanProject/UniScan?sort=date&filter=UniScan.Client.App%2F*&label=Client) ![GitHub Release](https://img.shields.io/github/v/release/UniScanProject/UniScan?sort=date&filter=UniScan.Server.Host%2F*&display_name=tag&label=Server) ---- Modular scanner/radio client and multi-broadcast server. Plug in a scanner, set it up in the server software, and open it up to the internet for others to listen to, and control it yourself by logging into an admin user. From 285ff08e600b2d6bd93cc84214226bcef9a862ad Mon Sep 17 00:00:00 2001 From: Dexrn ZacAttack Date: Wed, 14 Oct 2026 21:33:54 -0700 Subject: [PATCH 5/6] fix: move logos to right place --- README.md | 2 +- .../Assets => branding}/README.md | 0 .../Assets => branding}/logo.1024x1024.png | Bin .../Assets => branding}/logo.128x128.png | Bin .../Assets => branding}/logo.192x192.png | Bin .../Assets => branding}/logo.256x256.png | Bin .../Assets => branding}/logo.32x32.png | Bin .../Assets => branding}/logo.512x512.png | Bin .../Assets => branding}/logo.64x64.png | Bin .../Assets => branding}/logo.96x96.png | Bin .../Assets => branding}/logo.ico | Bin .../Assets => branding}/logo.svg | 0 ...UniScan.Client.App.Platform.Browser.csproj | 4 ++++ .../wwwroot/app.webmanifest | 11 ++++++--- .../wwwroot/assets/README.md | 1 - .../wwwroot/assets/branding | 1 + .../wwwroot/assets/logo_128x128.png | Bin 3266 -> 0 bytes .../wwwroot/assets/logo_192x192.png | Bin 4790 -> 0 bytes .../wwwroot/assets/logo_400x400.png | Bin 11731 -> 0 bytes .../wwwroot/assets/logo_512x512.png | Bin 11983 -> 0 bytes .../wwwroot/index.html | 21 ++++++++++++------ src/Client/UniScan.Client.App/Assets/Branding | 1 + .../Views/Global/LoadingView.axaml | 2 +- .../UniScan.Client.App/Views/MainWindow.axaml | 2 +- .../UniScan.Server.Core/UniScanServer.cs | 2 +- template/README.md.template | 2 +- 26 files changed, 33 insertions(+), 16 deletions(-) rename {src/Client/UniScan.Client.App/Assets => branding}/README.md (100%) rename {src/Client/UniScan.Client.App/Assets => branding}/logo.1024x1024.png (100%) rename {src/Client/UniScan.Client.App/Assets => branding}/logo.128x128.png (100%) rename {src/Client/UniScan.Client.App/Assets => branding}/logo.192x192.png (100%) rename {src/Client/UniScan.Client.App/Assets => branding}/logo.256x256.png (100%) rename {src/Client/UniScan.Client.App/Assets => branding}/logo.32x32.png (100%) rename {src/Client/UniScan.Client.App/Assets => branding}/logo.512x512.png (100%) rename {src/Client/UniScan.Client.App/Assets => branding}/logo.64x64.png (100%) rename {src/Client/UniScan.Client.App/Assets => branding}/logo.96x96.png (100%) rename {src/Client/UniScan.Client.App/Assets => branding}/logo.ico (100%) rename {src/Client/UniScan.Client.App/Assets => branding}/logo.svg (100%) delete mode 100644 src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/README.md create mode 120000 src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/branding delete mode 100644 src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/logo_128x128.png delete mode 100644 src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/logo_192x192.png delete mode 100644 src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/logo_400x400.png delete mode 100644 src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/logo_512x512.png create mode 120000 src/Client/UniScan.Client.App/Assets/Branding diff --git a/README.md b/README.md index 455010e..342a027 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
-UniScan logo +UniScan logo

UniScan

![GitHub Release](https://img.shields.io/github/v/release/UniScanProject/UniScan?sort=date&filter=UniScan.Client.App%2F*&label=Client) diff --git a/src/Client/UniScan.Client.App/Assets/README.md b/branding/README.md similarity index 100% rename from src/Client/UniScan.Client.App/Assets/README.md rename to branding/README.md diff --git a/src/Client/UniScan.Client.App/Assets/logo.1024x1024.png b/branding/logo.1024x1024.png similarity index 100% rename from src/Client/UniScan.Client.App/Assets/logo.1024x1024.png rename to branding/logo.1024x1024.png diff --git a/src/Client/UniScan.Client.App/Assets/logo.128x128.png b/branding/logo.128x128.png similarity index 100% rename from src/Client/UniScan.Client.App/Assets/logo.128x128.png rename to branding/logo.128x128.png diff --git a/src/Client/UniScan.Client.App/Assets/logo.192x192.png b/branding/logo.192x192.png similarity index 100% rename from src/Client/UniScan.Client.App/Assets/logo.192x192.png rename to branding/logo.192x192.png diff --git a/src/Client/UniScan.Client.App/Assets/logo.256x256.png b/branding/logo.256x256.png similarity index 100% rename from src/Client/UniScan.Client.App/Assets/logo.256x256.png rename to branding/logo.256x256.png diff --git a/src/Client/UniScan.Client.App/Assets/logo.32x32.png b/branding/logo.32x32.png similarity index 100% rename from src/Client/UniScan.Client.App/Assets/logo.32x32.png rename to branding/logo.32x32.png diff --git a/src/Client/UniScan.Client.App/Assets/logo.512x512.png b/branding/logo.512x512.png similarity index 100% rename from src/Client/UniScan.Client.App/Assets/logo.512x512.png rename to branding/logo.512x512.png diff --git a/src/Client/UniScan.Client.App/Assets/logo.64x64.png b/branding/logo.64x64.png similarity index 100% rename from src/Client/UniScan.Client.App/Assets/logo.64x64.png rename to branding/logo.64x64.png diff --git a/src/Client/UniScan.Client.App/Assets/logo.96x96.png b/branding/logo.96x96.png similarity index 100% rename from src/Client/UniScan.Client.App/Assets/logo.96x96.png rename to branding/logo.96x96.png diff --git a/src/Client/UniScan.Client.App/Assets/logo.ico b/branding/logo.ico similarity index 100% rename from src/Client/UniScan.Client.App/Assets/logo.ico rename to branding/logo.ico diff --git a/src/Client/UniScan.Client.App/Assets/logo.svg b/branding/logo.svg similarity index 100% rename from src/Client/UniScan.Client.App/Assets/logo.svg rename to branding/logo.svg diff --git a/src/Client/UniScan.Client.App.Platform.Browser/UniScan.Client.App.Platform.Browser.csproj b/src/Client/UniScan.Client.App.Platform.Browser/UniScan.Client.App.Platform.Browser.csproj index 5878497..9e50183 100755 --- a/src/Client/UniScan.Client.App.Platform.Browser/UniScan.Client.App.Platform.Browser.csproj +++ b/src/Client/UniScan.Client.App.Platform.Browser/UniScan.Client.App.Platform.Browser.csproj @@ -42,4 +42,8 @@ + + + + diff --git a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/app.webmanifest b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/app.webmanifest index a4371e7..9e1254f 100644 --- a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/app.webmanifest +++ b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/app.webmanifest @@ -3,17 +3,22 @@ "name": "UniScan Web", "icons": [ { - "src": "/assets/logo.128x128.png", + "src": "/assets/branding/logo.svg", + "sizes": "any", + "type": "image/svg+xml" + }, + { + "src": "/assets/branding/logo.128x128.png", "sizes": "128x128", "type": "image/png" }, { - "src": "/assets/logo.512x512.png", + "src": "/assets/branding/logo.192x192.png", "sizes": "192x192", "type": "image/png" }, { - "src": "/assets/logo.512x512.png", + "src": "/assets/branding/logo.512x512.png", "sizes": "512x512", "type": "image/png" } diff --git a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/README.md b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/README.md deleted file mode 100644 index 979155e..0000000 --- a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/README.md +++ /dev/null @@ -1 +0,0 @@ -AVALONIA LOGOS ARE TEMP UNTIL I CAN EITHER MAKE MY OWN LOGO OR FIND SOMEONE WHO WILL WANT TO MAKE ONE FOR ME \ No newline at end of file diff --git a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/branding b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/branding new file mode 120000 index 0000000..3d91304 --- /dev/null +++ b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/branding @@ -0,0 +1 @@ +../../../../../branding \ No newline at end of file diff --git a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/logo_128x128.png b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/logo_128x128.png deleted file mode 100644 index b704696df5f5ff6a06c2b1d5d71cd61bba61ba3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3266 zcmeHJ`8U*!8~x0fvCmktmYwYTPS&xLU4|@)k)?S{cDCW~~ zQug5)fx?_D5TMy%`GhmU6k_Qf1^_JQ{sjmq!twzC_@%>T7qhb`kH_hM^PdC%7Y@Xq zpY=G4>}t4^oiiX{ihkNLJh8AwJ^iuXmG{>LvqvMlSq_}SK}|nTCUaecqCQmHF`f^7 zW(AR|{bLVOXoNp$lXg4KhKcuV_V``@h5Z)0_yYa9`8oO4{1ytyQTe<9{g?=yZW`JwFo7V5W3Lq9ZUW$y4IMz8P9 zflQInHwn#ag?qO}yW78pjIzDDqa19gEqHfG_1C+k;>$?Fm@5aLrB-16OhMg)m#f$- z;Sp-qWZMMiw3wRflrOyM%a1Elrcxsn{S8Vx@AX<3#{~>-v7-TivCGQT*d-b}R2<{N zeMNw{-YLLK;VYo;m~%uJuVxoKw85|KLck;X>c~k?2UEt2bTGX@=54FAHCM4Uup&X) zz05zQgUq2%mKh3_8HFX^5TZt_?Hw<4H0%978Caopg(ct$JC1uyv=zjjE+_Ej=S@qJ z7muPe{40-`r3}8Aj62hC`Ai)_NPyQs`;P&%n;0zO0=z=?=v$m5dupEVd+PaOxTreo zFK5Ju3ydT?%fvJ)kIrZD02r7WTV$ z569cq?M1O>jL|r@C7hu~T~b=CFeO5Oj3odrkV!W0`aRs10T`3NB3$I$mbDP$Domrz|Zf6b{4HeJawzG!9PQ0%f)&z89vv2iax}fkvNzV zx$qwo(EQwOr_D6(tqT#X5-4Jr<~`jSbxflN|1O{TyYqdNz4kt%wK5-Z^?_4!^~>I?c@Swzc2X|ty5*brC;Q5 z!c@4aM+D7ZhW$9y8KQO&l;Tq$eQ^|`+n1dCK}E}Z)|m(|CgD^NRZ`@KBV^6Vb+1>& z-m{(2XQ(R760vwvw1Yzu*O4m7Lvd*aBVi-Lv4r4{!=+?#%?{ZFh(D0T(#Vj-RV8Pz zXc5_el;33GK#$1;^Vm=F<9a6`gB;v`P`(vGcs0`pKkuzKEs^wSwtWF42=fauQP?G1 zG%Y$5ee#?cGg%XohGc&9a4f>i)ygSnEDvgh;g<(jLuPwA-GT!8ypSTS=|Rx<;T{$nvW{hO{snoZNinqY}cneC8C9%sxmaC zWK)c?-)t^v+sH(!++J$`e&bH?^SK;pW^|3}n@HV4%c4Y?)K$Z^pKy|sK`#07H6ucn z46iy7;qNETk-w!MKaGn|)~ZYj9iBjF+)+Wj@Dfzs7AyOKca|#73_20JwKG>XX~RV{ z@UJbPr9xYyD@{?Qt>bILCy#cvWUNPB=^LH+Lin0E9jg?P=s11*OB(Dj>&}wvbTfx= zRK&3$gdN6M31Fk&Rr66JY^=x!Wqy|ft6RMkG>y>xrTJJ$L4kn$a0 zFIyFQk>a)=B_BaJEHO&wR)SVgFbaM#`|r~8K=-Au-{hJ{-A33AQQ~L|paC?j+EyQ0 zz6bdd8rspH&20|>_;Unz9kWy2YD`=}B1uk%$8GO)%JZFKDIh#RZRl1A4JTFfB7QGd z7ckIaq$Goqve3J~*)0k=dCR4s%0R_=f&G-`%_T`(AyW1QpKx0ez`{7)+3u@~R24iOVy^fv$D6i7dq*51U>DNdgt@1>2-9 z^|`B2`Lj(?a_Bld;KuvpW*NEluh3RPW#*-}QlU~X=8>9Rctya>vl}OzBg>z=$@xdJ zw+NpAlKTasg76FMR+Bldp)_Iu6z@)_G&Q||afK-KgT{w~cgn9oFqurT@GCHky#;y3 z=vSx9%ynhpwf_XgcM53N^|euYJZqP-0qtx1F6JSpWWx_q{!^6n`d72k>+F)z)i~%EuxdoqyVhMGPw>8uwi0Jh7iwfOUb&-1#8#5@! z?IzGvd@pgI|I^Q3=}^+ATWa-8b1WD&-ZH7aT6)aZjQ08vIAng!aIM!3xV6fiyf^%d zo`elRnmMwT$8Cg-}}DE$aI`u%I1@?T$>A&bB1`-r4@^p$(z3jIVGB!ey5ZukCl7F^hBDQ809_T zfEsi34}q0#CBNdTCUh$9=zFvxDbILc^=pe^wUCj+TuJp?lK@c{8S0<3N6>wM$Ln?A st}VZcKYp1f&$H@kl%zo|mf@5wf&73%%JNq_>urFQnVo4p!sp)q0OJ4;8vp5X$;DmqJ$7b zmc}{=*}uMj<2&Cu@4kEPdB41K&;8-OWb^C#O!VCJ004l=&;VockBR>Ugz8`S1Qp8v zBVe$FzBcg3phWaPK^JIX9}EC6K>rIMprG&)005ddH?h+FH-tN0{J;M1!2hHJpUd5k z{zZI0#NxUofJedHH?E{(eCuLwicpr|cS8i5J$N*b-R_MoR>G=b*{o=3|`nF%o7@777gZ>zA(yIeVyPpkBUgy7Gw zFfiU`{t?3V{j;iNtoI%MSAX-mWKZ=ziEf0xR@PF#W@q0cpqMms&-A51KuT2Mv)*#I zhvcvK5o+&iizb~=-O+rF=nP$9n$8aeiC!N4H|xim7i?S`(lu{sJb3&Fv!pZ<8sk+9 z05As_VzjKn3rDb#cGlML`IFLR+bZX(zinc6ZX_x>{WnNff0!jSQSa-JtGS;37+Q$B z*e6T*Nc%ycyhY)df#_a7w_as>veYsOs~#9>(U_2 z1y4LY-FjHqJn0b0|Cy1tA%3-DSYE#G=`HU&T1N8G6RZ#`u;eBCa#!#tqwkWXm{^Xn z+p$CPahiD+Weo;~+E0Y~nNW@zc$BZHScQe2oh9G6W9N0yO73Z@O>v@&XSB7m%5NmA zCD&aeTQYr&<5|c&-_g=8cv0~JLvXqlqA~x*N})~y-^fZZYcT=3DMmX>R$K-K3rS^* zn{n(E2ILxw=pbImJ!~+s2lPmVWS3})P+(m<0`D)wK>Y6wD>bj6fA0csvx5pkmW7*O z7?9asT@%>j&-?|G;d2Zk-+AA9JE)tewo3OE2D-tkU?DCTuNCm~1H&&m)iCM2DYfM> zLKK?~%#fb(OAfR||S}ychQ|w|SK%6hjxBw~NiC(Ktg+13W$Fu3MUHWLd zUXu#5P#4!RaD}8U#4E2OlNb6mK%T7NzRl7)I1`538Ip_xBUL)ROgzgo!#OO{5ulZB zYCUT``m(>O{y-eDvDLKipJLMw@R^&uGV1o*Lh#>ef8Wi0@2E3G_?{j1+33-eAEftT zuY&SVZe*|*3;vXIJgcO^`-L;_LBFmOUPYJ{5nC&t6!IQnB+kXBVTV!gDri!f}dP-;>cIZZMf@| z_FcM)k03np$O@wR*07}{_2ixtqm)fM*Uz^*-B%xTeHnt?ghTVXc8#mG?|fe2%KTL7 zjuo>V^x$j7hFBZ8?C9pJtDsRxUXk`VDJA1C8h=s-NJwO3YL~(1sF0})u`-j?DjNL( z=B_-Qi+utLkvSVvi#w=MG&Sv!5RR;d!K2pH7$A^L+CV=3>n5)H+CB=eYv%rrtUtbn zzbWFaE@*jEtPU=T?vhE!b@54A<&Xj$X)IgZT{2!J?*?(~WWj=l6~DNWbV<%WIgDP| zh8_GLrtHT$H?P`Y- zGf386B5t}t;Q@3LLEc6o^5Y$BQ-2r^yij>ZN*3&CB{|CmgLHZE-i!9DFhDz=r$U`}YWLnU;HO-F1(Kcl(;8q*vVrSU zJv3$$5AO-E241Vr=?^ns!)QNLn+^E=MmdZOz~o5!W{jqW9V1UlX;*dyb31 z{fQ2sy-GKk=>0g8BJWEvL3A9Op|z3$PzZNchQY*Eo<{|0fTh>lzIF0eD_!S>2&UA} zM4a4TMU%uIOc6VYrp1>F^pfP*Vwr467c8#8~o zt{~9s@`@iTMV4wX7?}3ta-Jga^IY46~-JR-d38K>eLg^yU?BjMtQ)#i-iA3ps zMm%HA7eN%2-{4F*`IO!+NxqBG(2f?^ueiLOIFt0+6AO{u><|9_U_lb{4v=49sv!<` zQFEhm6DXW6fH_Ia^9Y0p(Xc``-)FvEx{?{~;mnC~9Vexn6}jdgSt61j6AG9xBZGL zCA@oPbv+)+LIwI^spQAX&GhcuwFqSm={!5m)Ou6~6*$80mjw0nl=PKsScy9d}|La#<)l@UQEmv7I ztcuto2JQ^ENDVhrrfz7Gg6eIKd+nQ#ds}i_$bSvmjIO*<8#q3BPYtosG9ohFMBfZ| z_X<>5efn+wu;qM2wdPH3%p~+SY8wE-tN@;`(@QEC&zppNgJ(YzU28BBQJ$izidRmV z&@m$4MLcLw=d2eg-rkV*FOZslqt43R3>{efISjIUYBgPzK28W&?4jLBQvD+Sjw7nd z&Rf!VU(lS6$u9xE^%EFhP0Oi<$v)ro)bpG9&;irf!J$}kf{mz2sE05L-N(SO9$Eja zL-~q=#du(!Tm#Lh+w4ZlK@hT$u8LMfSk(g46zr|d9y)2Lc!f7eSBJ-uhQsu!h zBDNoA{v_%CbZ@uY+^BIV^|GZk=nn9;%+rIScQUQgxN2p(5LB>fhtAODS&*2`6Vp2E zcX9wn>v>hLn6VxIt8Yngy9)O1uvd%KGyIeCjaTcePijt4H2vsO>T#yveVujt=-oE? zpBvxG!=YIqzorsS?G?O@dmD8Ve7}CwZu}+On2(eQna4WIEzqdysOdh!~*wNwcjSOaYyJ-s6Hf~HL zeY0e}3eX=O;bO=Ybmxv)HBUeSd_hSr+p{A}n}^9F(gYhYaO$JgcX~)zHJ4JfF_~Id&B3h4r=REsK#zv;rs&8B z28F&FDqW&#zqsC4C_dYn2)ECzc`;|Rw=(r$Lz9g-^>lqPR_T-Bch5zY%C*aD_k9#W zNyN#jM{xtczD1sd?xrl&l4X^$3DKM{t~&y2bW*Wh*TupIr^B+N>#QkPnAJ3F?i@1J zQ=<>;TY2*g3Qv1(8LlbCh1^Qu$poVp4re^!S3B@RII_-*`K%R-qGO6n zZ}3E?QCToF=7ntRs4gcb@P84cNdqk4$~&db-l`QCxY(hNf2+l2R9R4E0SbLNN+yVkPY<3d_GA3Kl2~TqRzg*9mMw zD+n}XnA!S-fc%bSrh|%+-?J8W_bg1PdSdj zV*_<*RfcwY=M?$II>Sopy!*rMOKW*+v&Q#h*`Ejh z#i7h$q}b6b{7N9oih#6)lI=vy=cbZ1&Z717EW#x!`T?qT_+GztsCBcG2d}9jx#jlm z4bC^n0QStc@Pcux%UIQ3;k@2c2cHARbCzup6C{i(u(S9e${JMdwciyY6KXtvjc2PM z`r@W@XUr(j8YCeg|1s<%H*F|L;st&~>*PF+2B@$~B{+XZ7W8IwnSsw9G0M?3#s<_M z*y?(?epOFh`Rs+hq-eV8g6(ivveg9V-Oovnig*Yxz^P3ph7br{K&Z=WYV4Ugn>_-8 zKA0R*`Bi6!EP*tZ_%~VZo+k04KoY+y=g(>k#=F^EYR4KL&zL+&Rg?hQgp$)Y^b$wG zc6roxj;DNiio9mT`GCK=uD2E90dBEvT|rf9X@HtndITg$1XO zDb$5-C0O05JiBB=xB}|p_hHs+3qrp$*t-O=d$Q4Kv~P<&X8J4}Cd@iPen~|$p-Xd+ z$7Bz(flctZT46m#&oeiRnL##J_dkhJ?ChPpZ$w9dFByxe=9b7Zh{icVg2G)HQSX=(Y3^eLoyDXxvnf@8f?4H`ID^1iwcGLHvj$J O07KpDn0jrOnEwC_6vRpZ diff --git a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/logo_400x400.png b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/logo_400x400.png deleted file mode 100644 index 3c39845930eae5a98e094bdada0da2d6646bf9ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11731 zcmaKS1yCGa+br&~xWg_IT!Xv2ySuvvcMa~rf;$8Y?u6j(?iSoxJU4mY?|%2M`m65L zPR*Hq`swaDQ?+|)WCA^L?LP>iH{*5kkftCwcS-sJb})xPL?+I7C?7zXA7W>nHdCxc6d{U zUGhFBTG;PXY+o2b$X#wqY4Ni+<~p*fO5ec;ZhNOQThSt085j|MwiKWD^Y_=7qSD!1 z_k^Z7u*xRhifg0IafuB*)&0yjCDN1lDZQisUeXcOCfnz1srQ8ml{z>Sk4-P{!WJe3u@Kys4mr z+EZz!=hK&j_m!Z*AK9H&?7!t%;35L#`Cq=2ontIb0(^xYQ94N-j+5^N`sNb~LdqK0 zk6*fM-W{X^4OjKIKGM`D(m6rT31Lxc>F4cSI5_S0v#jxn zQ)A0}x&0_|eZ-~n=#sJMNxP`3Hqlhl!~JgZ{2M)@Tkp_Htfb5At7&JtuyhE%hbd(b z!JAny*QKZOx|b_q1lxfkP!%-YB4OJma-e^i6er?YI+#Bhr&w|4R+Z_t{!p5N9FZy_ zs|hE-b!BY4ot|dW%VLb*x{|q`gRd#0&?#QkKC<&@2D5`n!F2bV+)p@yR7*#9gKHbPa( zhJJUrg<@^9nB7&j<-0$tNQpC~E-|Z^8~-$<-`pRjanPF5H`B({>Ot!Sn}uau1(+nY5@>>4xotw7k2_4DRc`RrDE!}ZkHPln5{ zA4nrzxz)EozL6FraWDq6@yTc)?xX2+FYIa|np+6MkV-UDoT}0*X%|OdtP)W;T`GlY zBbOCiN4LOJk_?;u$P~MnoDnP1+*?XrN1nXCUG_Pxw#M9;M)}iyHan(C@1PsxqXSXi z2#5fPAUD;yO~?>MJ6T6|Lp!*<@%6z`2glwW7V7Opxr?R)w0jSdpaCCOBfjsIYYqet zp*9RLUg;P*ntdu41LH{S)?+#)RwU^jx$+Jcs1p=sQIb=kk!IukmizTj6TNu*b(AS- zacQfC?%+vx?OcmP8S7FyXLq)e>wOtv7yjDz8`DhWP-LaW+$VAXRbrRhLfY5IR^Lxh zosi!Y@SM5;mP#KMyv@$cN8m5fSa}w23i2oGiOnfaMnJEJ0oB7Umfj+?^<~#c7VpX) zL2$-Wl@Pssg_!}E3PRy3CD@E5U{yFFtJDUroR7$@8oiaOsJst1sf2ipMUBln){%Rf zHolt|bYH)8I1}pj^FS{|m}qwoPt(gs=ZFMcOK0O~w4*?`lYCmUn5PNFB*c>XL?0x> z8jJa8+Kg;1dbupFIh*1}Bn?78K9;1yH*+R1PS@~&El`2sC zvzUoCYwnfS3ogR0zzPW&X3Pq4j7nP;W>|yom&9#>$d2H1kg8*G0^nePLz%%suu1yc z0B-9Rozo%`w^p3)Qh8b`ho8jryk%Ll09}(2-{U&`=#boby$zZ_U1iHCzs7W5bjG|K z;h{#$Vv-(7-2}d2B>Hq&PqMkZc}zIGb7W@4c?AQG<>%4pQ_NA<$@WQLkuHhSD^-=< zMu~cRiE0^6SOvT!ue^^jW#T?as11%8rUav`H+J}=&3TFZip0Js4iZURVzKBoeCdz- z23|;w-9GttveMA@{Qih(J2Ot+*AO`M2uHZo7eQ&A{px(BBU?;mA{AAGR1$1>6I7ax znPCTr1j(Zez?=;#m6&0p!Un3;YT+y1wIRNtm%?w3;c+~Cda-r${{Pw*15^8}K?O_4we+wO>$HPpco1@-V}_R_@Tkn4`aW>VsP4?jsp zYH7@NHzRV3Ju#sx8cB%0%ErZR*U$G*DT?rp9K>DL8FZ<)8@7)g_?Fr?3muo=km0RR zgYj6go1#Fz-#vrxn>k(OYChsp85{*KmjW@DWCjpuKS(4(64cXThe9mPrjE}C(kJEr zE}wqb?BdpevRA&4wa@Kf!bvnRr6D3asTO4cz-I6DjcJyy3Ud-GSA9;_7FSfeGQjhP zsi{Oqd9p|wMBLMV^9kzhN6v>vDzzb2*EH+r97@B6jwf8<0wxRdLU0o%=1=9z?Mw-j z-_M{;Oy&#Xo&1t)0pOF=a_FEiG(@uZZlgdqPF!(J<}>E8`lFQx0Q&2HL?TD^b)mXD z44y@~7>@8zELVpYWY0JbbIildhdi1yzvACPS}TQ)Ieo|1hT6}sfK!mlyCYrPFm#ai zL4~z|nTraIJLJTTPkY!lU_&lLh?r1N3B9+A5D7i|jLKR%$VrgQ2zR;ih6zwMt&2dQ z%mq4uy_6A#ue_mNN|x(-jYd0$&S(!Z>=hgdljGtxs0 z_B94Qnam=HQ>n6%V29KEC=kq-@AXlJ5?1BPhBOy)KJ8-EMexA)@85Q-*Gj>4*_5p7HEvB$ zh!LX-K@@)av?X2zW+cKMB6V37%O4PPKnls|OsNqt!|?sd+yNlNdP>WkAX091qMSn8 z7m@$OIc=f4?r85x>_1mf-{ssuT6Zc;Q5HTI-s`t2C7%mzNQ?v_D-OpXWv23y9R^i- z3y~ExM!qS0Dgw@Rh?m8W?92^%`Y|)(&tHB?O3;-^G0hf6sRto50|a=%H^TXX5tB$< zQzE8`J3rF!7NardLpJcUCf&$!3{%IkMdc5aN-65OG>0ZNGXDO3LxdCp*SES%DZreG zic%EMc@vf^MX;$PNFF5&I;HaWf3njE+QdWOxD4`C`$7Cj^Co*U*OK&m z;JPd#;5Wx1>DBTn)+&_PCC+}f(dF9@<=^Mqc|A>U-0xQ=x3%e-0S5$pwNvmDwMu4U zc}7g2O|J6f7GG;YRVU{@Fkc*YL1VX&^ZR5`gRghVJKYUhc6ag^s$?tRgxAQ$RqGt{Hz$b#|0E}?m9-*-fFCfA4!n*PI6dNu8 zxaf&KK62J;;J8ibGXAt9q1)%=7l+D)9oUYkGf|L?%P4c7mM`r2e07cDx8IkGTFC@s zqw8nAa}Ob4&{Dl+fC1Rb!J|j;0*d(U3H?0mXWlHMYR8}DI-;|*j@zG=I@aGE5+W-H z|IZS>Kv`a0Ldsbl)#)A8@$H|_e+O@W!T;j_jM1In(EcL-kAva*Z`U94pVAw)>+e4z z0O$ArOZ%7kPm9w(%zp*{jGbTqwL^FQuiF2x`xEA`tAC`Jz%HJG@{%WX&m*6!0p2*u9D@ z(;%A&T;j@P3)Q-GjSf;2>R27_qo^;!gMW@SA)-N`$FIHbEW`pgRee9Xf%(n&ATvt} z7x|9UrP;e!MQVwRA8}3|2mw5QD`K5M-e;;v(u^t7l)2 zwFu=1BMYu8@mw{8gCQECprAquqf9W&RYWkvb=Y^~L4_``D(XKuDtex?+&+E;kIP#o zyKBrX+}%#>?c|&Ubew=4H3oL-{=eHR8&VlaTcue6JoH_)!riRwfUNU9EpDh~&3rVP z_C(!zMJpWtLW?^h4zEM#w{4Wc{>Len^jg@#WRc2UZf&)CWNXOuMSKlt4+_afMLB)VkDGH6c5OA703%4Du_dyR zu8XbMCK?A{9+MZCSJ^KB z3FyWkylYWC^yZB;d#;y&!1&`>|E1Cq56DNr3n=cJ|Ln{Z;Q>5eWf%irJCU1CFEhem z!f3R$v)fWVqg^>1%P`6*#`xMGo82-_E0}z`t(yvvu2(NR*rUS z!9<8vR(&T~Mi)yZMIo%9boPRDXTCeF0S(A}T7@#I(v{*4ylFy>bC*V)5O6t1tpa4b zSZBwLUbaa(_e<4L7gP{*=jRl`!Kx0odB0vfQxkOHGCCCr%F;tuC$j{EeWF*>xyzyM zUX1-BE+$kpK55MO!$*yAFz%8jq~q|@g@GjhyxFKygAI3O_h5ZtNZJ78ATTuctJa($A~>lVOqw7ZEDH2>8LWYRiM&;5%0$ddB+h?FUzA%AW`XqvNWE-#~>E~8FQ-kbINWBjIPCe2RJm_uUg!2k>gDkyo1$!Ve5HhD<6g5i+cgW*$LlnB5KQf9`W--tQiyz zPWn*Oly}9*i0x|>9r=!gzMVC?m&Y{}qpuww8sOhNieF5>Rh)@F z(%+X$65f{0t|56{lsI>eIF%&4x1(~jO?4olL{mG-S@R@$Oa!mp6HK{VT{&5`OReeZ zN>)ip8c+gm1&*RkN1+xn?+_iH1KJjkOk@|sdAd)&k2x%oSTtj;Uv7zCFZHy)7$V7) z>A}FRHl>^5nNS}2obD|~Lp>@+Vg7fz051^#p}OgK?< z{p7h)NNk;^VDS-d!K}9@c|(aT9#$rY_QV*Zg7|6jTcU|bfY7mReT_o=ddkYa*31#~ zfijXqS-tbLVraigAsU&i$QSgg&f^l7S*eho=+XF@*E1Yc3ir=iV+#?NVy~`eV$0WJ zK{ZEf*SJ)vVz)Sb$JPG58==mvRalvlLy<%nVem%x^SWzQvozxnpK2@T%4eR!Hl^$8 zaa9ak6CJd%mL>*q9|Oix4XtXJiwNB>N(&s&ql?(Hs50xy=e1J4N{ccw4VedW{}SCJ zKno;xF!p=o3v`0FSe^#CWAOV8 za}JWjeMRUljG2{Mp{?YXs_FaQ0V~ABL&IT-zH5N?TtplpN1u8a+PbD;fcDT}!80dS z!4o5|&EXHq-oboeQqBdRYYPS0 zp^IF$8Lni^=a~8!bRaE|hd2kHpp3fE>!ZtI8`eqk#1;0}tA`S{#f)R;2`#M{hCM^j zDiqWYkgS;MqNrhsNy@It;ZR#-sI9B=FLCiYeARAyhTi4+a6_V&*}wV@^F5jgafAK6 z+|<$Z@`2>%xQDGx=#QKc6_U~veA0pe6DIu%vfT$CnPJ6^=@M42dzdHXam6nWnP?rj zhGNx}D^d%s3b0<_dW0?+^hi!;t6Gh^u(0x{3SKrEtk9#I$}h$4ym`w!&%>by_J|zV z_cj{1s&&uuVQsT;U1)|HUhX~pSrh|$wwNLhERCY`ntX3eF7{(fARfJR4!Y4c{S*RK z=#TZXQ;Y*20ufYcUA#@QL-xx_(#JZUb4#-?EGQBu14sjER9TA1fNh-utgDV~U!G2t z)m543Kw21Oq^jvHa(X3~6&s}n(!8pqQUdA;sET-PQJYfxeX~jGm>x)LXh(HqChfA9 zdh900(uCKZUr2)H3~`wQZ>R6Y7hDM4xUz=qC_Q_L& zMX?g?A6af31rAZ*v2wm&g7%wc2FTw!07xwY_c~~t&T(WTfgu&%>d1{|DX(C1L=ufF zR)n&KX*t7Xj<44GuPvT{6QJz|J3RFR`My^8I%QTmuqyL4q{%7W^iyz!lwA9D0hlh{ zTwtPOI8tU+XT8RWZ8=Y7EXs#u;8WcNgiWpAphxJ2hKRmcK&-u5{t1Q%@XWnYE&`CI?9aZ>W$cjn2-T(vzzA8}{~aOKAU8w2Z|ac9JY?eP80Z8-aN$;CO|G|{ zh-wiq3{5g{ZD+C#$B(Aew52rrVJ>v|u&w`KBh67Tz5v8UOCy`#PmXSrL3`+=@+7YD z+d_9@SfjLqs^A*dHbb&r2ry zHvAlaPf@b}<@r7L3t8{Q_;*@F4`gDF$St>n5!hz@{KFUd49<%v z(_N=UUV^M^bN13>tF~LR${QMu^WV-&OR}1);B=ys5T%H>f{xuWhs;OQgK$RzKXZ3`w}Yp znvO1KACG*aBRa%YAya)~&m0tq-4b^wJJdMsl7oymm#p#q)g*b_#yb0>Nda~kiLUT< zRfLwhV%N(GDxFsc;EYf674sbSLle6w6-}WBI)xWa`xvcEjB=d<l}b@m1E5q> zt&V0)Id`{`fpezDmty5;msmB1=W-N!9}BTExA-mr-Qt-FV+>a8Y>m697pN8cHB8u* zZw8Y9Q6e7jZ4L-gH( zv9o-Z{d~w7%iW(9m2@9YCpdG5tqE)N>mq--#$q!6xUaF___0MsVq+Uet1+1EXATK7j!?RWjk9qVk;Xj9SB*i6u`T z6N=^-??l4N?g{Dpk2)~0tQU{!7qw?p=2$dl_*7%vYg|3d(Z6dY@jFsKw z%=Y2w+{(tby3jXSUAC(r1HMJ&3lSJ(3P^JXe_Kvj|5u6*Z-Io=J*}y2Q@?GfFTL8| zL$rPCvB1s_Qo1Q6zf*i8oD0-LvEFqpi=ArMLjeS#WX?ZKXzsJV^wkWQnD2Vp8?aYk z$Wb(#LmdsxUNG3-^iix`)ss>;?i%$jkY}Hl`=%WeVk;b3ng+AwM$FhHs>pZ2SI2yZ zE~ivHKEIc;ja@2z50j=aw`5cXnh}VvE$cE@ZgBGH z+oG|HIVugB>|{zcSNoDus0fJ!|KbGf-Nk>=U-lsCU&qnVAzZ z|A@i0A7JMHzPm@)tcbf+^$3^z4cSyRFQM0VQ5)X``OFQiyvjZM^91jP5_}ei0=t`h zK*fse%_OwWZ3`@E&Y0qlrl~}WxV7)gtZ{Z%&IMj#U*Cem4EA_CONKW`gaG;zTeRHL z12w(=6ASC@!xHUa>MnzLy&*-j(SS#_apSlmJgWIkAOv88qmbwt@)y(v2;?-D(+46@Jo}CT{&T ze#7d3*6fwidF-bp?mK-7ghW)L&eNwG_W7})+&;14@SlbJtXvI`zr%Un$%i}?X_Y0E zMsAJ#Y?^?=@>b3Q^yZhJ=gofQ^uD3#(>8l03}muFzH&h3?24KyC?VGH#B+xqc8Z;Pidy)s6NqV)moS}K`L>r6?|t>Y&_ z5eqA&6f^*T^rU92dLhm1+7L*_was&AOcL9cv5`I+nwNX00e8-u$6IV zj^AT?;Toj^Nyc%MvTy^cfHQErIns{QFj!pjCIW_tO!j?b)#0N*QeTjHUT83bqOih! zgFj88Co@7&#;s>eYtyE$q=6h|Gw3@#F}k>Y;V*)D0PPD5Y=iyOrLda&k>>{|@J8MR z6uJ!i7jNc2Pgm_lQGi-`e}3e-u%1ZV$wI&`Ohwtn-3j#wh{c++!qP~B6c?}eXgpIi znVuTTK#?~!X!5{xBa{P%fF_Q+7RY1zSM=dPVR1a2HiT^>1aV#Rn0-|(z1uBh9^VN2 z(ec19yt3ySA8yN-_eC4Ni6qCm9m-1slU02`qx4U{uH47}`heHZG7TgK*bqdB*I=2w zm#^7UQ!kAKWI9X1T<|{G1()YJ96e>fLpx4NbV$}g7k-jOM)>^V-^ys@^EM3P0(VSM zVFToCg7Af-pww5|`621Py`i>1XiSwTLsqu$lE^^P@{(hcA}2_C2aKB-0b}40@qY|p zpGQIdbXH9DD3l%|8==<836Kt~{+?1YDnmIUf&%1-Gq3Mxp3mE$j`$Y*Vh&M~sctAo zfhvsxEGjdfs+Nm?9qF#L?(|bOl@lm_lb}qZp+*7-ffB1tYYxDoRlEFIc0jWaWa3oe z>Z&k_vw}2kFyOjei9Ni33A48VW8 z=NVUD&rZ?OvGB!fTaqq!g;D>=$_?-$OswXY(O)U2mri(Pi&fB@O*3@zO4PFdpnnU- zIYSAPD~1b`YcF=WeBN%n+LV4R?csAZdaq*tUW&uy0{`2-3@F_F^A!^sGvNcbH~IKt zcN%gnxYLT(>+5TUKpyLa!j{qd%@Uq}H1s~sQcXTXwubF~R#>z}V0q2x@C%w_ZGIl^ zZd3+33(2K8r0N~wm2#TueGExojV~{EbVNmx9Hf4irZ^scQjoIEHw=T5?Pn<6E{!0p z-HLQ#fZuIq`;sPev6^-wILuCiQlE+kIQ$@=hU&E0{VT|tZG6~-YD%~cYfc<8BxhRl z*<#izC@!tKiPr0rwS=Z!3H;AXy&$rLS%afv^47Rb+NpEJ`HgV4V@MN}NN1p(K*oK9 z{j2V2O;G?Ml*oZ}J?DIJ>~nFl5)k+77e!JK(6v|_-4>}vaM-K@blOm0^*aiB|B&pl zkP$7G>MX(I77u3zWZJR|C4<@ zUj@L3>W6|aTst3{P&oD(Q`%Qv**Bv^633N_<6jN7Uu+mkPAcHTBGeLZ1n$uIXuM5^QTQ=Nz|`LJ&THsCI8}pz%?U4(La(zo0%F6jKtD1TO!FS=94a-(4I@cJBXM*>tb;cRp_pTg5^y?rLSO8m$1MjS=c4wbvb^oq0 zRt(go|+4=HoaY1j~KgyAn;3&b!k~CDbh?_z~Ma_b34g^CXPW*Vr)SDOaPYrObsf)nMy>ipi! za!!ui4(&jm$s!Th7-G3X)<|)t++=)XwcJw#2DcC>JOrl+22KJ=-zZIhVwCDRc)}mIdUAcFOh={o2Q}p)Cr7GW=n$<#=ORGhb;Vds1 zR>Gs3f)TAlX|o-??Ck6o9=tmY#=4Q9!uI3FOQpfnFuQ~nIHqKzX6Y}ECet8-F#aSX z^&x_Qc$zK^VgzrbYs0KeK$2kzBkxGa+sysio6`m;%@z;~C^ZMaI*Avhm;yp%5R$VA@@h-cE+CP@ zj4?x2eKU;^6F1E{fG|s9-UHjwcX_R^GJlkZrBLqUypIcU!;GI%r%q+=e|MAmv?Ymx zM56qz+Oyj*EIOgXj74AIq!6#JWSSvF>x{`1jRB$wH9z-(FvyVf@mZ#fHOeSq+kLSm zvH@yq@Hhy4Ke8%_A~AI9)(}POSf(S&c&84cV8XVIJ6kYf61z{66agV-1q;Cy+zI3j zJuspy`Jaq!&q1rpmoOmi2XYL;l%yyndU(({n4G?~eT&95*-8jeeDdR=C9!W6HJfmv8HKuDF%!~bp#|2EpmA+e z&G|FHW~PtZ?m^GWY?B=rOUUI0isz&-l=hYr<;5h;y0fTcoGV2D)J2c&uR2 z=`Tv6XQEykCSaW_iy8*@+G{yxKB>Y)+AU?SII^9@{v6ZarD=ZC)>qxpE;0x=`i=F# zu)||CpN~49gj(eyYO4+S+q=`%M6*JVM6+)Po6g>HYegECP(e0{D54wiCD{@_X}pRHjd{n2SQ30U`CGyM0#SrD zkbZ*HU?@h4c0?HiUxVZ^32Dz@qrUoEVxt&ISEAo8aJSeyQ z{2WT%KR^Mi^vSeEtLJHYwfxb>3VG8#nhup+t`2}bOw2yREU{%02X>Woy1zWfPT+<6 z^BsUY6^Q=nvjA>PyZ@^oFN-&BWe=;ks{uz`Pxs|O$L+1$-dX?GRDDpY74?#655s7C zBiL9hP*C7}tD|+Gz?-=Lf)8h9U^AP8Ho!?ET@Pl;9#!y*0^&7BjjgyoCm&BNEmQT zMHB&AF%f{xVl>$og+&Q7g4ack@A{{5ze|G;l0nebvxlajL=-`-%`pz61f}ldjAJB+ z0V^SQ5mZD0vW9Ve0e|3OL%&R=DB%7|?Vn}ipND=3e@w~tt`^B<5VE2N(M_)Yrs#IV z>-<|OuNK-s-BXGO6wBat$pVDq0b%ngp0~!^QlPe~n}w=6Y*ciBbO0dv7qb;4hMvCy zmh_`yl%TF6DEwTR=+Aig^1y*XX&~AM*7^~?z_rEt{aGb1Lg_qE0kFeH#|61Ybjkno zK`6sbG1UNpN;7-o2X5l^aQhA^Mi6hiDm)u04`oSs+h`!f(OwTLuc+(-f148sB{TI2 z+ST@uu_Ai2(#Rp4gtAF~L@7u8g^AUZJzRSC*08uN%W9;ZLrI%z-N_fT@8x8|(ID${ zl{|x{)$X?iAIB<-0}k?p*OP{wI$6)-mndnZ?q_{F9HgYI!4d3`^4A$}U0sivw~ciC zBwKUZRtr~6ogej9;lG;Wc2ifLYqFXzI_Ik4Fyj2D%P%oCCy?kp!=oajuQvo1FyzEJ zUS+K%%aY1@k!S!?KP8g6 zkUY4!lZ;~x(tl&jUuV)GY9mpb&QT|il{zoKK`0j_RKhg5cuFLZDpR&# zzS^0D(NIl2g!{+RL(+y#e+gH0`Ftk1`-!J&l$bI$&bsa=@f?#(byh8tr?d|{{o|9m zA9wM?gUp-Xz9$%6K9EM^FE9tJC@aSNKz^(DgLFyhwf|)IV;udhMhW4B4rsK+)d)B- znxLrJBS^6PGYQS2cyURA(-k%yfE0jbpV2a7(Wpu{}yE=6vb;qjYIwqx5P+P diff --git a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/logo_512x512.png b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/assets/logo_512x512.png deleted file mode 100644 index 29b4d8c78a33fb85a7b70acee16a869824c2585c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11983 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 f8impP8^4#fjVTeg3pD)j#Vx|Rb$ diff --git a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/index.html b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/index.html index 110aee1..74db053 100755 --- a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/index.html +++ b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/index.html @@ -4,7 +4,15 @@ UniScan Web - + + + + + + + + + @@ -34,12 +42,11 @@ - - - - - - + + + + + diff --git a/src/Client/UniScan.Client.App/Assets/Branding b/src/Client/UniScan.Client.App/Assets/Branding new file mode 120000 index 0000000..1c99f10 --- /dev/null +++ b/src/Client/UniScan.Client.App/Assets/Branding @@ -0,0 +1 @@ +../../../../branding \ No newline at end of file diff --git a/src/Client/UniScan.Client.App/Views/Global/LoadingView.axaml b/src/Client/UniScan.Client.App/Views/Global/LoadingView.axaml index 487942f..b8d8d7c 100644 --- a/src/Client/UniScan.Client.App/Views/Global/LoadingView.axaml +++ b/src/Client/UniScan.Client.App/Views/Global/LoadingView.axaml @@ -9,7 +9,7 @@ x:DataType="global:LoadingViewModel"> - + diff --git a/src/Client/UniScan.Client.App/Views/MainWindow.axaml b/src/Client/UniScan.Client.App/Views/MainWindow.axaml index b1078cc..8df455c 100755 --- a/src/Client/UniScan.Client.App/Views/MainWindow.axaml +++ b/src/Client/UniScan.Client.App/Views/MainWindow.axaml @@ -5,7 +5,7 @@ xmlns:views2="clr-namespace:UniScan.Client.App.Views" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="UniScan.Client.App.Views.MainWindow" - Icon="/Assets/logo.ico" + Icon="/Assets/Branding/logo.ico" Title="UniScan"> diff --git a/src/Server/UniScan.Server.Core/UniScanServer.cs b/src/Server/UniScan.Server.Core/UniScanServer.cs index 739f433..2a02c78 100755 --- a/src/Server/UniScan.Server.Core/UniScanServer.cs +++ b/src/Server/UniScan.Server.Core/UniScanServer.cs @@ -87,7 +87,7 @@ public class UniScanServer Uri("https://github.com/UniScanProject/UniScan")), new RemoteLink(new - Uri("https://uniscan.dexrn.me/assets/logo.512x512.png"), + Uri("https://uniscan.dexrn.me/assets/branding/logo.512x512.png"), "UniScan Web", new Uri("https://uniscan.dexrn.me")), diff --git a/template/README.md.template b/template/README.md.template index 4bd1483..081f700 100644 --- a/template/README.md.template +++ b/template/README.md.template @@ -1,5 +1,5 @@
-UniScan logo +UniScan logo

UniScan

![GitHub Release](https://img.shields.io/github/v/release/UniScanProject/UniScan?sort=date&filter=UniScan.Client.App%2F*&label=Client) From d9f85793e229dc58dada5f1f1328ab0129c7d519 Mon Sep 17 00:00:00 2001 From: Dexrn ZacAttack Date: Thu, 15 Oct 2026 00:59:35 -0700 Subject: [PATCH 6/6] feat: use new logo on android, organize logo resources, create alpha and mask versions --- README.md | 6 +- branding/{ => desktop/pixel}/README.md | 0 .../pixel/alpha/logo.alpha.1024x1024.png | Bin 0 -> 4671 bytes .../pixel/alpha/logo.alpha.128x128.png | Bin 0 -> 921 bytes .../pixel/alpha/logo.alpha.192x192.png | Bin 0 -> 1101 bytes .../pixel/alpha/logo.alpha.256x256.png | Bin 0 -> 1295 bytes .../desktop/pixel/alpha/logo.alpha.32x32.png | Bin 0 -> 563 bytes .../pixel/alpha/logo.alpha.512x512.png | Bin 0 -> 2167 bytes .../desktop/pixel/alpha/logo.alpha.64x64.png | Bin 0 -> 668 bytes .../desktop/pixel/alpha/logo.alpha.96x96.png | Bin 0 -> 824 bytes .../{ => desktop/pixel}/logo.1024x1024.png | Bin branding/{ => desktop/pixel}/logo.128x128.png | Bin branding/{ => desktop/pixel}/logo.192x192.png | Bin branding/{ => desktop/pixel}/logo.256x256.png | Bin branding/{ => desktop/pixel}/logo.32x32.png | Bin branding/{ => desktop/pixel}/logo.512x512.png | Bin branding/{ => desktop/pixel}/logo.64x64.png | Bin branding/{ => desktop/pixel}/logo.96x96.png | Bin branding/{ => desktop/pixel}/logo.ico | Bin branding/{ => desktop/pixel}/logo.svg | 0 .../mask/alpha/logo.alpha.mask.1024x1024.png | Bin 0 -> 3749 bytes .../mask/alpha/logo.alpha.mask.128x128.png | Bin 0 -> 633 bytes .../mask/alpha/logo.alpha.mask.192x192.png | Bin 0 -> 742 bytes .../mask/alpha/logo.alpha.mask.256x256.png | Bin 0 -> 879 bytes .../mask/alpha/logo.alpha.mask.32x32.png | Bin 0 -> 398 bytes .../mask/alpha/logo.alpha.mask.512x512.png | Bin 0 -> 1567 bytes .../mask/alpha/logo.alpha.mask.64x64.png | Bin 0 -> 454 bytes .../mask/alpha/logo.alpha.mask.96x96.png | Bin 0 -> 553 bytes .../logo.alpha.mask.foreground.1024x1024.png | Bin 0 -> 4408 bytes .../logo.alpha.mask.foreground.128x128.png | Bin 0 -> 765 bytes .../logo.alpha.mask.foreground.192x192.png | Bin 0 -> 919 bytes .../logo.alpha.mask.foreground.256x256.png | Bin 0 -> 1100 bytes .../logo.alpha.mask.foreground.32x32.png | Bin 0 -> 474 bytes .../logo.alpha.mask.foreground.512x512.png | Bin 0 -> 1949 bytes .../logo.alpha.mask.foreground.64x64.png | Bin 0 -> 556 bytes .../logo.alpha.mask.foreground.96x96.png | Bin 0 -> 669 bytes .../pixel/mask/logo.mask.1024x1024.png | Bin 0 -> 2066 bytes .../desktop/pixel/mask/logo.mask.128x128.png | Bin 0 -> 442 bytes .../desktop/pixel/mask/logo.mask.192x192.png | Bin 0 -> 483 bytes .../desktop/pixel/mask/logo.mask.256x256.png | Bin 0 -> 526 bytes .../desktop/pixel/mask/logo.mask.32x32.png | Bin 0 -> 325 bytes .../desktop/pixel/mask/logo.mask.512x512.png | Bin 0 -> 850 bytes .../desktop/pixel/mask/logo.mask.64x64.png | Bin 0 -> 415 bytes .../desktop/pixel/mask/logo.mask.96x96.png | Bin 0 -> 447 bytes .../mask/logo.mask.foreground.1024x1024.png | Bin 0 -> 2926 bytes .../mask/logo.mask.foreground.128x128.png | Bin 0 -> 537 bytes .../mask/logo.mask.foreground.192x192.png | Bin 0 -> 577 bytes .../mask/logo.mask.foreground.256x256.png | Bin 0 -> 649 bytes .../pixel/mask/logo.mask.foreground.32x32.png | Bin 0 -> 441 bytes .../mask/logo.mask.foreground.512x512.png | Bin 0 -> 1020 bytes .../pixel/mask/logo.mask.foreground.64x64.png | Bin 0 -> 492 bytes .../pixel/mask/logo.mask.foreground.96x96.png | Bin 0 -> 546 bytes .../Icon.png | Bin 11731 -> 0 bytes .../MainActivity.cs | 2 +- .../Properties/AndroidManifest.xml | 2 +- .../drawable-night-v31/avalonia_anim.xml | 66 ---------------- .../Resources/drawable-v31/avalonia_anim.xml | 71 ------------------ .../Resources/drawable-xxxhdpi/ic_desktop.png | Bin 0 -> 2124 bytes .../drawable-xxxhdpi/ic_desktop_cutout.png | Bin 0 -> 1889 bytes .../Resources/drawable/splash_screen.xml | 2 +- .../mipmap-anydpi-v26/ic_launcher.xml | 6 ++ .../Resources/values-v31/styles.xml | 4 +- .../Resources/values/colors.xml | 1 + ...UniScan.Client.App.Platform.Android.csproj | 12 +-- ...UniScan.Client.App.Platform.Browser.csproj | 5 +- .../wwwroot/app.webmanifest | 8 +- .../wwwroot/index.html | 24 +++--- .../Views/Global/LoadingView.axaml | 2 +- .../UniScan.Client.App/Views/MainWindow.axaml | 2 +- .../UniScan.Server.Core/UniScanServer.cs | 2 +- template/README.md.template | 2 +- 71 files changed, 40 insertions(+), 177 deletions(-) rename branding/{ => desktop/pixel}/README.md (100%) create mode 100644 branding/desktop/pixel/alpha/logo.alpha.1024x1024.png create mode 100644 branding/desktop/pixel/alpha/logo.alpha.128x128.png create mode 100644 branding/desktop/pixel/alpha/logo.alpha.192x192.png create mode 100644 branding/desktop/pixel/alpha/logo.alpha.256x256.png create mode 100644 branding/desktop/pixel/alpha/logo.alpha.32x32.png create mode 100644 branding/desktop/pixel/alpha/logo.alpha.512x512.png create mode 100644 branding/desktop/pixel/alpha/logo.alpha.64x64.png create mode 100644 branding/desktop/pixel/alpha/logo.alpha.96x96.png rename branding/{ => desktop/pixel}/logo.1024x1024.png (100%) rename branding/{ => desktop/pixel}/logo.128x128.png (100%) rename branding/{ => desktop/pixel}/logo.192x192.png (100%) rename branding/{ => desktop/pixel}/logo.256x256.png (100%) rename branding/{ => desktop/pixel}/logo.32x32.png (100%) rename branding/{ => desktop/pixel}/logo.512x512.png (100%) rename branding/{ => desktop/pixel}/logo.64x64.png (100%) rename branding/{ => desktop/pixel}/logo.96x96.png (100%) rename branding/{ => desktop/pixel}/logo.ico (100%) rename branding/{ => desktop/pixel}/logo.svg (100%) create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.1024x1024.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.128x128.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.192x192.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.256x256.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.32x32.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.512x512.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.64x64.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.96x96.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.1024x1024.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.128x128.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.192x192.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.256x256.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.32x32.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.512x512.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.64x64.png create mode 100644 branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.96x96.png create mode 100644 branding/desktop/pixel/mask/logo.mask.1024x1024.png create mode 100644 branding/desktop/pixel/mask/logo.mask.128x128.png create mode 100644 branding/desktop/pixel/mask/logo.mask.192x192.png create mode 100644 branding/desktop/pixel/mask/logo.mask.256x256.png create mode 100644 branding/desktop/pixel/mask/logo.mask.32x32.png create mode 100644 branding/desktop/pixel/mask/logo.mask.512x512.png create mode 100644 branding/desktop/pixel/mask/logo.mask.64x64.png create mode 100644 branding/desktop/pixel/mask/logo.mask.96x96.png create mode 100644 branding/desktop/pixel/mask/logo.mask.foreground.1024x1024.png create mode 100644 branding/desktop/pixel/mask/logo.mask.foreground.128x128.png create mode 100644 branding/desktop/pixel/mask/logo.mask.foreground.192x192.png create mode 100644 branding/desktop/pixel/mask/logo.mask.foreground.256x256.png create mode 100644 branding/desktop/pixel/mask/logo.mask.foreground.32x32.png create mode 100644 branding/desktop/pixel/mask/logo.mask.foreground.512x512.png create mode 100644 branding/desktop/pixel/mask/logo.mask.foreground.64x64.png create mode 100644 branding/desktop/pixel/mask/logo.mask.foreground.96x96.png delete mode 100755 src/Client/UniScan.Client.App.Platform.Android/Icon.png delete mode 100755 src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-night-v31/avalonia_anim.xml delete mode 100755 src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-v31/avalonia_anim.xml create mode 100644 src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-xxxhdpi/ic_desktop.png create mode 100644 src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-xxxhdpi/ic_desktop_cutout.png create mode 100644 src/Client/UniScan.Client.App.Platform.Android/Resources/mipmap-anydpi-v26/ic_launcher.xml diff --git a/README.md b/README.md index 342a027..6f071cf 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
-UniScan logo +UniScan logo

UniScan

![GitHub Release](https://img.shields.io/github/v/release/UniScanProject/UniScan?sort=date&filter=UniScan.Client.App%2F*&label=Client) @@ -29,8 +29,8 @@ it up to the internet for others to listen to, and control it yourself by loggin | [UniScan.UserInterface](src/Core/UniScan.UserInterface) | 0.0.1 | Serverside UI definitions | | [UniScan.Client.Core](src/Client/UniScan.Client.Core) | 0.3.0 | Holds shared client code, no dep on Avalonia | | [UniScan.Client.App](src/Client/UniScan.Client.App) | 0.1.1 | UniScan client | -| [UniScan.Client.App.Platform.Android](src/Client/UniScan.Client.App.Platform.Android) | 0.0.5 | UniScan client for Android | -| [UniScan.Client.App.Platform.Browser](src/Client/UniScan.Client.App.Platform.Browser) | 0.1.3 | UniScan client for web browsers (https://uniscan.dexrn.me) | +| [UniScan.Client.App.Platform.Android](src/Client/UniScan.Client.App.Platform.Android) | 0.0.6 | UniScan client for Android | +| [UniScan.Client.App.Platform.Browser](src/Client/UniScan.Client.App.Platform.Browser) | 0.1.4 | UniScan client for web browsers (https://uniscan.dexrn.me) | | [UniScan.Client.App.Platform.Desktop](src/Client/UniScan.Client.App.Platform.Desktop) | 0.0.3 | UniScan client for desktop | | [UniScan.Client.App.Platform.iOS](src/Client/UniScan.Client.App.Platform.iOS) | 0.0.1 | UniScan client for iOS | | [UniScan.Modules.DebugModule](src/Modules/UniScan.Modules.DebugModule) | 0.0.1 | | diff --git a/branding/README.md b/branding/desktop/pixel/README.md similarity index 100% rename from branding/README.md rename to branding/desktop/pixel/README.md diff --git a/branding/desktop/pixel/alpha/logo.alpha.1024x1024.png b/branding/desktop/pixel/alpha/logo.alpha.1024x1024.png new file mode 100644 index 0000000000000000000000000000000000000000..b9692055f64269a8aa773cc31d2e42c5db085535 GIT binary patch literal 4671 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7&t)GRguRWK#D2J+uenMVO6iP5s=4T;_2(k z{)&sAU0(Nz(7n4rA=MJsh?11Vl2ohYqEsNoU}RuqrfX=RYiJr`U~Xk#VP$HlZD3$! zV32k!NESsyZhlH;S|z#$6Dt!_hz3(9y+uF`8gLs*GILXlOA>Pn(DWD^TA7$Y^z44U zvWI~|(BIR=F{I+w+Z!9Z=7x$i1S;1{>gHTxE%7kVnAMPdF0|PpShQFoeN}k2W{r65cF-%bIZUZ^6H` z-%JOl`EM6zV6d}eWMFV)VqjZ3TKXs~X=G5EG*)MtS_rEu@{{4%5$~rKi z1aselX-NX`~RHZ%ogVQ^ouW;OHh)8>}~EfzjLb@C3eW4v%j~G zVR_l!nt!_={@MKW@AOJWnx-GD?mL~AE za`%Oedl@#o_*n3-?l+V3_1oM!yQR+o)7t)+dGo8b*8H0Q%$xMgiWouJ_m-6*qR4j6 z{=54agyZN_9$+{ERwh|(6K9Ah-d^+XZNa~%pZ?96H3&lI*gIhP>G!(o=bzhe`5TM| zK{o8U%kz9b|8x2LdIo2Ep6B~x@BP32@Q?oK-^Rt(bM^zX=9`ZLpXd+ln*H$4=eOKE ze~st-fBfY4ef{_6*O}kuzA@i+pi^1ZhP@1@>*UVW@7?nsn9#0%`p4kChxWA~&QuSo ziA!?y3##7W*0KRF{SSU)O4e`t?7vN);Xv2@c3{D;Z}4~!)Z!aYe`8{p6ZGdl z{~#zep2SW&|G)Y-bHbCupMKuwdHz4<-u#*Ehkv@?7S9+2mE?h!vA~2@wteq`lezVE z_j7?|TlnFhFW+yk`}h0dpDT->e)c~%2pWx*Ku4Ya#`*}@#^|{H@89+F^Q-LV)NiS6 z91IN&hkL2jjXQR~WtG?|bW6<)fn`YfZSI1s+xP$f z`ni7k`Sc@$Ax@{iWo-jSsKVPU3;Vx+uL9$AM@`+FLD2T_d!J=de{Z^VHsm zYnb@?)FK#IZ0z{pJ3&_LJFG{nH%%D}?P)KJ^Nz{DN{typo3e)_UKjoJHqEE&uQi8HlOWT?< zOszY8eA3F^zpFNUf7vJRect!4X=Qoe-x*5@I&mnr2sjxTrOvaIt$6ZWX#EB@pXB!A z&de8>E}YpBp2NE)VZBR$uE%^v69!#|-gxGgw?g?%#{;K%UD>)|+x)kuUUR=RZeUx$ zx}fuV!|YR!_eJDi5nsaz75kWd;H`u5>E8`Y`~Gt53VZRj)A1M20>%u+j1TXb=gs~6 z{a{@Q?~d-f)9jct7@`q{U4&%R%0*egC^XWf+x*ZHAh$JR04v#Sj*5sXXf6Z=qKppdEZ^Js)S^Yxtz2DZo?kx0w%LaA-%vW~~S9VITikoea?5%Z%?c0Nxc27%rkxC=}YMhybjzBkFPV#Je+;(=TD*Vkl(9|?_cQ1 zTP_B3#y#$e;{WSE1S|^VhAK~9&phwKrK&?et)T+J|D_dem*10e{}*z6w(35UZ|2dD zlJ4fh1DGK{R^ab_x!Swy3h%Cxx^7(;{+&G=7NW1NGgiHG?YzeEaOJ0n2~h{69GEj4 zTHaMN_TSp6e`OuBpO?*QX|-Cm3k+KrO#ZHCj(WalS($8r<@Z*oufA;Ody)N)d+Te4 zM6(Ou&7p1*Ue9>%^Zx@G|7ErY?&f|oheeeJP literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/alpha/logo.alpha.192x192.png b/branding/desktop/pixel/alpha/logo.alpha.192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..3bfd5bdfc84e112c9b8867faa0abcb93f7d7b289 GIT binary patch literal 1101 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}*n4F(rAsyD%`U>Qy!Z^4Lo}eO=jK zaq+Xu>r57X=M5B6Epd$~Nl7e8wMs5Z1yT$~21aJOh6cKZrXdFARt6SUriR)E237_J zX~%+OQ8eV{r(~v8qH8d*GBJf{Fm=*f1k|7bx1l66H?_DVF}DCskFlYZi3vo{?$;}U z&SsAFba4!+xb^n#{;Uv3k%o_m{u_Wy`kq)`P~D#=r00{abf+!=1f5KPG=D`0gL3?Kw#Wf-4|?k z_sy6!`wQzEYvuzy48{y+7&b)TJzwDz|7q6q#J#P;6RjE27-ldgur)|BT(f6&RZpyq ztJw2MV@>%ApXV)x>sZt_boVm?(u%ny0C1nUsZpDcOgk`4L>qX;U4!XAD6xB zJC3e=sk6pk`t^&i|NYg*5q=5dt+Jr4DSjydbm_xC#QpPc-&=Gy8Fb+;^@6-U(1_z-=JbNMIFpPa}> z{0l!4B^-GA{)T@OEz-W#F5k>6H~9gQlb-(Ti#YmwL){$gU4#KlU~>Vzc0M**Q$>{3M2l{`B2P% z=-0a$sKKqd;=5enQ~jCS=Ka?Bc!#|=`(5oH|Hpq?J5R`h(+D`Iq|5bJm|BK}EL-*> z>B8f{IURGFwoQkmlr)ALe}E3_omI0a@O#s}man@Fr$0jqm%{H&X+GAvi{G*G&Z<#D z@^jAS?@eZwKV5(_uI#H7k;D3y$d&5<&r=`GSbfBBuiIVjPsT~RkHaD@=bUzucfss^ t4KhfE0R!-pv`9OW|2<$?z;o6M`6`C698cG(USQ^A@O1TaS?83{1ON>Wxd8wG literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/alpha/logo.alpha.256x256.png b/branding/desktop/pixel/alpha/logo.alpha.256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..59d4eac0ca77446a302b8e5ba757f7fa63e53f4d GIT binary patch literal 1295 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K588}#g)VJz{w?K+1$=lt9fnimzvJsHSUgGKN z%KnOrpIu&OvgkW+ppa^bYeY#(Vo9o1a#1RfVlXl=GSf9Q&^0s-F)+6>u&^>U)HX1% zGB8Lx79@+JAvZrIGp!O`gNc=iDMW**linhr1`W6kC7HRY#U+Wk1!#JV4XsQ}AbNJc zUfILIz#{MI;uunK>+Ri*eRo_K8Xj^l;t??^naFT)p@VSeb_G$UC@+(5p1>w2F=-Yzd^2f6|V?yRbwUH|CzX8y|M z;)j3Syvbg&&itGm!#ULk3&tay3VsZQOdY}wcV_SY{^8_J`NZYN4_j>0OJDA9p|1v+mUTrIJY;$Sj;{N9sn`(0~RsOX)@W!U{{p;(`79agRyY}DF z*DPr$b^*=(wx0P<%{TWO88vnXn*Z;Zzxd2G(X{LSIVtG&p8L!g_vX*f=iUA3+xR}5 zzO~($8R2NK1GoR%*AQ(S$G@R8HsO6O<72BslN0}3O|kh^b^G>gMuZQ*9^K4Wu&q!w z@#FWu#u#o|!~Di{w|;`n`uVl<>k~1gx2

vv>Z#|IZG6|GYj8-JN;AtqyEX{8J&3 zU;FRh^us?cpZsRe_gJ3q@83VSE8_P5`p*_OLlPF)(16|X_dDyEYpiMiq>k;+z4PzQ zYvFk@H@`{GM0fP=@^6fHYVCXE{kF;P@4x?}rY0^O!~Va;O!oJ8{H;FxV{Y&5{M!A| z-%H-UI|GSaL`1%gXO}pC*#6Fs&-wh1zpLNgf9q%6_Pjr}?_YA-H+FdY0vkrUK{5wakj7i z{p-bru?MUewBczP?A`KzwT#uWwfF3;epNN(w|y)>UMFLWlB9u7y3#d; z9z6K`Zz4tvz1}VN;MTd{?(XsY2D|FZH84zgeVy@J-T(hbkG)Ml|3Ciii`R^Q_A}^t zqJ;a7)Az*-vhP{_X6Q@Bh&N!qx_F-PNdS6!gJoY3op;549aq>Doff$(Ag-sYpUXO@ GgeCx37!~;d literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/alpha/logo.alpha.32x32.png b/branding/desktop/pixel/alpha/logo.alpha.32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..3c905ba554b4ce215bf2e28626181a7cb7e7e4e0 GIT binary patch literal 563 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE({E-dXR`Ty1pu+?m!{c64!{5l*E!$tK_0oAjM#0U}UCiXrOCo8e(8(WnyV%Y^iNvU}az+ zc>2l_6b-rgDVb@NxHTk9%c%fr(16=el9`)YT#}eufTG9T%D}|R#1vvlQaFDt0|TS8 zr;B5V$ML(9*ZLg}kZ7Af@l@l12eW!u-5EB&Ua%@LLWT3YQRAGs4qxrEJc8Lxr%DJ! zZ|L~;XMTS6(~8-bzx}E4zrWA6b@BBj`}c8t);(J1u;~4}7SWq^M>$ftmNRm7<_0^_#4ZI&tRB1SzOHx^|EKQhi zHP5YPhUaIU*<0OoA~z=|GgLOIcHnAGg?0Jt-ZC`c4EcpSsokTKe#%t!;<54 zEW1Ikb-?-h3qOy`cElg#zxYBVkj*(4#wAI2OC7#SFu=^7g78k&X}m|GcGSeY7X8yHv_ z7^EEwl10&wo1c=IR*9~`#LC1JqQTTjZxK*~2Hb{{%-q!ClEmBsG(E;by7-P6S}q~g}wyBk-TDbOI@0NA)|||1IyA$s4{a+xRc3 zs@bP1y^8sO3}b@%F`~SU? z)4f*yob}Gv_vv4M-!CM|oU*@_47=Y?_K!b5yVhuLW9!}f{~vv3nZuyqLo~{%lRL2f zvUJ7iyL#8;ee*v&Dtj)v<{2l?dF}!xVgmyhW*dH1GW0Ju7uY^ayx`XAm--2b<#Gp3 zzhtj4R%hT4CK}D2&wgNyd-vDNpP9<;Z@<5FmivdAjsHrDYoFe{dAyty2N`^3$cR3x zTw%HQ;AWBnb~y#cljmz9y5~MZ*9;2pzN36&Mp3C>*LQdKjNkIE z8pON5s&{{NZ~y-NY|`KEv%mlEiTMBV!)M>{mOg-yd+ObuhS>jl*Xr$S z{@*@)zP$AO-TFzw3@w~Qqr0>39oQi+_IiHaz5h>>{@(l|?l6-y1Log5a4Ed~{r`hW zfBzo-ZvVID%&*KU=KNb;eJ z)4RXgFPHzYfxY`{`(^1nk4XxR>+{(S{(QfjALm=o2uv(bAO5Y~5)uD*-{tH7H~;)2 zK41I+sm5*C^n2g;tFg6m2T#5GZeRQNR90L=CBuPG5)ulqIJ)*zy0U;e){_G_kO#Y|Czh@pa1f8_4mK>dH3pPkd*Rcf!+azBSZRL>%EL+ z7K{!v7>GqTfXU_V{`-7?@<~abq*Q_+wRbfCGwQyJD9Qd8`WeLcboFyt=akR{05xZF A2><{9 literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/alpha/logo.alpha.64x64.png b/branding/desktop/pixel/alpha/logo.alpha.64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..1637879e2f97135edc9f9e892bf7720000d579cc GIT binary patch literal 668 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877Y2q^y~;*F9(#$WuPgg2 zE`D}-oynr_yn#ZhC9V-ADTyViR>?)FK#IZ0z{pJ3&_LJFG{nH%%D}?P)KJ^Nz{G?R_&K62%_!>Oi4 zITuuwxp@|>)9EXax!o(BaZbs8<)@$bkNzvNTYh2n_4?}zf_8JyiDlSa#(m?(tOIFl zpPF1a>}t)$#L3XpcqQnT$rX(q$9fhkPp~?rCRO<-(t|_ggN(uM0K*GYyrPyXOmN7M z)99&sr#Rv2ZWbYqs}~j|%xjXF!F2r+84puEuQs z6Y^J#%Zc;F?v0w|Th7a>b~(kcIF+@T_hkSW@^!YVlTr+sO L`njxgN@xNABFPIb literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/alpha/logo.alpha.96x96.png b/branding/desktop/pixel/alpha/logo.alpha.96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..7bf9ed533ecafb8cb933aecf1c2156e5da573147 GIT binary patch literal 824 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcgn3BBRT^JZv^(q?ydF&;gzOL-A zxcJ%Sbta3x^9Bm3mbgZgq$HN4S|t~y0x1R~10yqCLjzqy(+~r5D+3EFQ$uY711kfA zv|~ZCC>nC}Q!>*k(KVP@nV3Q}m^$e#0&38J+fb63n_66wm|K9R$Jo%y!~~*e_v@8C zKv#Qsx;TbZ+1-(ci_u=r_(-v*X=mvo)I`p17zAQ z$8A>ES}!R)+235A|KYZuB*^j-*Ax5h-IzY-%l9jq4EJN6@-s|-SRIw{?eORB6Ck(LPxz@& z`H%U7{>m?JV?R4iWdUi*`4ab0x`8=-I2H1fEQ=6puQqvE|h!XH#YO_SZ*ORtqHZzW5)v z?}p;y{@N-gpgp62%n)dJT^YyE@MBB=*M=R_zcQTru}zMFp~jYxfx!_Nu1&zy#KOtI zz#+uIAfUp)py0v4;4p!Kp+SLm3SLC;GtAhzmObXq@gM)Df92m{rcXc1vHDN;H6ugJ zmE4;D$4`FNfBZK&jy?f_)h(dNu)4;~kS6zNz(5>puN?{o_w${^Q^Np9X=u4xD)V7SNSqVRYX!+|r&HUIxU z`FZ_go!;3&;T~YBuKmlbF$hx7fg9&1KdYgDFR#qk Tw6#b7f&#$P)z4*}Q$iB}fzh}* literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/alpha/logo.alpha.mask.128x128.png b/branding/desktop/pixel/mask/alpha/logo.alpha.mask.128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..43d3ae4b77d1404a86934e2623369f748ea00a1c GIT binary patch literal 633 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGrX+877Y2q^y~;*F9(#$WuPgg2 zE`D}-ZZr941)z{>iEBhjN@7W>RdP`(kYX@0Ff!9MG|)9P4KXmcGO)BVFwr(Jure^1 zd`IE|iiX_$l+3hB6b)upCYDylmJkgI({d_+8Z_WGlw{_n7MCRE7NF=cw=y=gGBkwf zS!mqh&%nUg>FMGaQgQ3;9Y;SVM*+7)6S?C{=a47Y@36RsA2+GAln z$#`K6djx|OL+(Gx38Lw)vpKalFMx}Dm}{eduEG0V-c#!XOcxk4KA&&cy4PX0;Pa;y zJjb7v{C$TIH_dfZsekW|5ZED}k^T3^$B6JL?-{rq*cY6&XSVwOGZLzxem>*-(;s#3 z{M#twFD<`5Gu!s}y@chTWD^))Fl;Hj&KO_rRUudMn-^x@JJzc8@@8818O0j-96(-} z#kzp`!m(KPJuUOu|G#|~cdEPrDB=P1vQXlk@9ck6&UgR+e*Ndp|AD98v*|L(Hf+0J z-F)->|F>%(zI*%6IN{RP`%uUA&S#vw{^ts)$M5j`NYCD{3ARiD9E!kz+%i30+DMYM UOhQy!Z^4Lo}eO=jK zaq+XubDPOWD*%O5OI#yLQW8s2t&)pUffR$0fsvW6p@FWUX^4Tjm4T&|fr++(ft7*5 z!Iwf4zSTzx#i^A9EQD8IzcfuyoX} zi9hhrPS>VeV~1(2e4o79@x|-w?e}taa0&>6O}z1Q+k&;n)@DAOb-o8x^rm&vzSqCA0m&ZAdxEzg|GG34Nioc2V80%ZZ<{{cxp}|l-Vggb`Muv;l0hK>GNJ7D{3-E2|G)pwAq@5D42F%jZ#VgE_}SwF z3rVIUyL4Zq+&+iw^NrCH&OYZwXoAHRnEv3me#tRO-z)rU_JjDIu6{1-oD!MrxD5P5A8c~vxSdwa$T$Bo=7>o>z%ybP6bPY{I49u+zEUgSov<(cb z3=AgUk$8ZjAvZrIGp!OugPE0yrIoQIL_@-~oC=@@4Y&;@nYpROC5gEOD0} z4Iz3K8h7{uU0v_#;uunK>+M~`yxR@}4uRGm3S*8<_k20$v|jDZC0sSrx2)W(C&r{% z)cHS7Jz{~zgJgz2m!A(o{znH9M<3r*FRWGPkDv|5L(=SbY8u(FiOa%H|+TOjbXL*uixzDY3R;IwGkYW z+wXm6+~@yq-;ek2Vtditgd8siTy5voGR6P7`?F&HFh&2atiY>bFnyPv&aZhbgLAijRf81r5J6q+%}4nk%>Nchi?kuN!Q S)rA;NkhrI-pUXO@geCyt05uW- literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/alpha/logo.alpha.mask.32x32.png b/branding/desktop/pixel/mask/alpha/logo.alpha.mask.32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..8c5f645c0eed2d28c487f7ed56c29c5f1be85993 GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE({E-dXNZ?>U>NgH-JK_C9V-ADTyViR>?)FK#IZ0z{pJ3&_LJFG{nHn%D~df$XMIJz{+oZUKrOGb02JY5_^JdVGe;wa=`z~gHF*dnq>>G`W`sadH-)Ah2QSDLxx&iHs{#-(S^ z-GdLDPu6;BwOhLUccl%GeU3Az@lh1yF+q+=i0O+|=Td#M}ZDJ?2)%hE|4# z5IqZxJNy|KSoJ+!978H@y}e`Tr|c-;5a?jX_pnIv(AS-1&U(xfpYERUj`N!A7Pr(t z_r2ZSOj+Wm`q!`u*E_Fi<&J5HYa+#47jW-t(qsu|Ag0y=p^HU9&nzf9Y2 zGAQ^Ejn3FIq`j@n-=AID{~-C}pW4qqPyM`ceLIQvZ&~|JFlHIM%`_6doN%r5^Y_*7 zzusRS|6w1=?%tdCudbB8VRjCKfEv;0ncRW-M?c@6UH||6qo0+(GbC74hi^qSEg&^PRo%v-j`! z+0XE2J}Fj_n4KErpH@~i?EY?Rd*Bc-F7q$zA6PQ|C1Zmn6GI}AX!%RVh#P))p z>Mz&4Kd(Sy;BPqn{m-8SGvYEdB;ObFCmj9$&&Gfhn@9{rQk5S#_>a*xN@{CNNc$g< NUQbs)mvv4FO#q!|d0qej literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/alpha/logo.alpha.mask.64x64.png b/branding/desktop/pixel/mask/alpha/logo.alpha.mask.64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..d8fc32bfdf89d0bd867202bafa9709a75b005189 GIT binary patch literal 454 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877Y2q^y~;*F9(#$WuPgg2 zE`D}-ZZr941)z{>iEBhjN@7W>RdP`(kYX@0Ff!9MG|)9P4KXmcGO)BVFwr(Jure^1 zd`IE|iiX_$l+3hB6b)upCYDylmJkgI({d_+8Z_WGlw{_n7MCRE7NF=cw=y=gGBkwf zS!mqh57cwb)5S3)2 zXZyGM0MiV{J9k(af}Pn;`6qO&<9REg5zhMT^<4SW2fWT|n|@#@D1ZArpO<~ck-QbR z85s7Mxy)hBtz}!{bGtpn`~c^PeT}PkbBCLUvT-PG`p^8{W4`_G-bEaqtJX9BE_2?U v9iq=>l(zni!?QC}B{inh3Imn3OyF-@BO!YIoYY~U4;egN{an^LB{Ts55w@7^ literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/alpha/logo.alpha.mask.96x96.png b/branding/desktop/pixel/mask/alpha/logo.alpha.mask.96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..566dc9b3c0ff4de9ce0961a115ca027292bee693 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcgn3BBRT^JZv^(q?ydF&;gzOL-A zxcJ%Sxy|IG6@WsjC9V-ADTyViR>?)FK#IZ0z{pJ3&_LJFG{nH%%D~dfz(m`?z{C>nC}Q!>*kQ8buYnOIsGTS7D>Ov|YNYS4h&P?DLOT3nKtTY#d++{)O{%Fqy^ zXQ6S2KLZ1!rKgKyNX4zUvkdtT83?fOA1Mwxlpb_w_kuI&3%WjuM{${pDNaj{p5uN? zbCHJK&8WAhp1T+dJ8>ws2snup6-0cV8CZOB?wc113p6Vj)wfS=f07}yIc3fVz6Y#7 zTs3@UHV7>5Rd^_Sfcr!Dg-J5K$|lRXJ_6;wTtDHoMa|e)dU5uHZ?S#l4EhW9yNN9_ zeLn3mQ0qwwQ!}y}JIrOx@Ra(q}X5_Ljc~+B}58gSU5b^$osdRx?JFNT1uE7te6x zQ(ZM9!-Kb+3=AAXz#vj#U{LU2U~rhgz|f$;$iU#p#K6!5jCmFsDmea)>9t*+K127s zw$JNti!;5Fk1~o9CmVZC` zlVMK(APAsqwRhtf*zyklJpPuOA$kv;(+ql8mE`Dec=z}l(}ow@_A+cZItXIwz@p<1 z|K$E=IR`bmdz-swFW>X|ZJ+yZ z%QG@pFjN54lKbpJi1-* zFZDN*@j$0Ut8L;EyMe8N1DZ$w+YfL$6aZE$6Ut-l{?C8Q-!M`B^z;9QbN*LX)~CH| z|IB||JmWJkR0pzT2bE|qW4DVJ)U(yyk4t!AG-rNY{p;uT^5^_*b>`O>4T88lv76^P zuu<3Gdi(zWUq6HIg9FaOd=M1CPk;f}APjWg^8NdN{jBGGZqNT*^5ekAsKdQfi~76! z7<6v^`*;2P|2;K!%7Y>vfq7EBO!Az6ef`(Z%im2u-#<7~f7|ElZ@G2u*Wd1c%PMj6 z-`^|e_sgHN*Lg4hoR#)n7i^^}toyVexw>%=u=d&TV*6XxLD6}5z3w(Q!-3la9B-6X f?gOm9oAvtUgPh{&>gTe~DWM4fiGqSY literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.128x128.png b/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..b523f137ae1de51bef65a6053e811b9af5f35d1e GIT binary patch literal 765 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2_SGrX+877Y2q^y~;*F9(#$WuPgg2 zE`D}-ZZr941)z{>iEBhjN@7W>RdP`(kYX@0Ff!9MG|)9P4KXmcGO)BVFw-_Lure@U zappXUq9HdwB{QuOMT41@iKUgXB}7BQw44f{1`W6kC7HRY#U+Wk1t@yVt&9z=3=JWA z78-Z>16|GQ>EaktaqI0YLqBFi5msRr$t;yF6G2mxJIbQd9Uhs*G<8)kS?F#uB}Bv{ zGc$*CZOYAiXVa$qnR%?}#*O~v&*iJj#kmDRp!3A0AJd=DO#kQgRyz9ttF>)E+Xbc! zz187&&aX+B9koKN#lHb0^2$`<^MqTm$@{04W-W{ouw#^R;9iiqo^kiNf1Oa?%Igi^ zXQrL|&U{Vy_)L!C4Q>17Ka@5Ys=+kabDwd&$L_FIp@zw%LCj$>;}!-f-UX}| zKx*BXGZ;;tZf23kI ze=J!l+i~i@AjB^(>%%K{EUR-nw@3cV`=H;pMSDWC*8koo2KVXK+JiT05Bom+d^X`u z)c^7ie~-b;dU>Cn=lZ>vnzC=kJH;ZHO&pk`X4Hwz=)PBbAUG@j*D_9s6Xu+^TTuKq z{gAo?$fM6U^PgBFb?l!zB%qexk*u4Q}Lv$9#h#Khp~>gTe~DWM4ffHokA literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.192x192.png b/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..6677dbccb91619ee4abd46ffd226e450d9c745b6 GIT binary patch literal 919 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}*n4F(rAsyD%`U>Qy!Z^4Lo}eO=jK zaq+XubDPOWD*%O5OI#yLQW8s2t&)pUffR$0fsvW6p@FWUX^4Tjm4T&|ftj{}ft7&) zi!qSHOf0R8Eg>2brsY%sHE6(XD9OxCEiOsSEkMy@Ze?s}WoQV| zv(UK1AL#1ko-U3d6}R5r-Iyg3DA90HW7Z`i%_$>T}(#y8I%Wd&Le1UBjG#cW???>(a~*Y;TcYtpsK zSp5e}g%#8sd>UpjY&5@o{zr)Z&(7Hoe>4bBlofzW{M5|&QfaX-y0ETyHM(4B@P)f> z&*KfOp{5uzCVdXRaK7rK|3AGKSw~;LX+SdQ@&DKhhuPK(ZemViI>OSy3AAF{yS^K8 zJ=dG~ECg>d0yV?LA#TDD*qB;=gs)=xON}=`7ei%rXEz-?e^1hW^79Ap&);H3a>?m` z&Brv&SI?`BvooEj3b9ZP7!Zx6*PHTQKYf4X`~Uh?_YsaUvuEv{e7?Qvr}f8di+OW8 zP%ZJXJMHV|QU(qzu+`J{y1&^M_pH&UZatF9-0$)xet*CGFK!F9pJ(yE(BfZh+xlut znfAJ4kei{OjsG!3Pc)PypO0yWZsI%U4~n z|KiV!7J@UI`n+KVoU3=w;or7P>`SV}zinqPA=$rE%%r$(@yYZQc4!c*Ih@(LVCLt= zr@MV`Ac8pBob_zn|DACkW*lejpSktwR)zP1)pgJ?a(H7?e&pMO+`SE{NG6~4cdXv` kxzqs>1mI-Fz>xlhf5%44*N4{a2jw&dPgg&ebxsLQ0F{MeT>t<8 literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.256x256.png b/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..535ed4669ae0dcce7251f41a1545fe5aba1e297f GIT binary patch literal 1100 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K588}#g)VJz{w?K+1$=lt9fnimzvJsHSUgGKN z%KnOrpIx5YOg>rxD5P5A8c~vxSdwa$T$Bo=7>o>z%ybP6bPY{I49u+zEUgU8v<(cb z3=CMDIZvW!$jwj5OshoEU}j}vX=Q8)(U34Lrvj)!18ze}W^QV6Nn&mRiXL+-V?!%L zLx`S*#vT3)49qc}E{-7;x8B}0%)8>i;Bb*8uuZD7i7n9iux(Hwr%K*o)fGkjQdKU_ zp0159-e*mweXNjuU%y_u^6`yR*FEN)d3Wy)&}KMDFWvo1-A=Cdr1W2jWBl&%7dFn5 zsb!S$W+-Ip5O$cu@Q6h~yhL z?NfukwcIlp!TNwwoCF~ z;IP3y`C}i?-?x`GhJ^&ou-^o}U^me~|!poiCbEd7UfBo^|4!s1~hMAz$fw0{A zA22>Pf3IucKm6nJzU|5AfqJg4Ve7Yh{2M+O|3885>^XlKvfu8NPbewhtc?-epRY4+ z`}hC<)l=8?YybVvseaG?p_Vab5+rrP?4MpAf8eH#^)IGxspuBx{kA%=_3iI|L$r{D eX9FOkAgG@4a=VrPy1Cn1K;oXRelF{r5}E+eT9HZs literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.32x32.png b/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..51a33fe377416922f315eb64ac6141b4d8bfed52 GIT binary patch literal 474 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE({E-dXNZ?>U>NgH-JK_C9V-ADTyViR>?)FK#IZ0z{pJ3&_LJFG{nHf%Ea8t#8lhBz{gO9@x;VCSstm!dZ~B^Cx?-^~Oh{A#%0p!U2ho8F%n^LYM6>A#ac&t}guWpHrNde6`+VV{~Psw2ARa_bcfv)ra1 zjbctBb1E8UGbzlETl9j_>1}-!V>S05j^Z#$#vk@e>o literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.512x512.png b/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..89389b4f138a3e236d4ea54e5980f7a26e4b7a4d GIT binary patch literal 1949 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&usfR9vA2xF~5PWWt%mj5%gJzvWze8^eE-|pUxu^%J3^AP`hX#kx$$4x#=8IU_52=%ObrH% z#G(ziU-Ig#ea32#ZTh}3xR?a3=n1?*c<0=E2QC54JJ8mDS^9^ya3cw6D5p;Dz^i@# zyI=AiYFpp^^_1Rg zp3g0hJN)JId$HH@X7%$ENsEo2paP+~c+K7W^}l{{?|;Al5lIEobbI~-wf~E6&%JH{ z^uXh@&)Y3YiqxOa8D(ncSAYLq{@3cq=jCtz{r0inzw7<~lFy$>H))MbZT$TG)kb?6 x%ScNge{34=?!V9X$C#AD2|ZU4;_IEtSBbE`U-bMKu;OB1@O1TaS?83{1OQIM8Jz$C literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.64x64.png b/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..84440e9dfb103c0b08e9e997166e12669abfba9f GIT binary patch literal 556 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877Y2q^y~;*F9(#$WuPgg2 zE`D}-ZZr941)z{>iEBhjN@7W>RdP`(kYX@0Ff!9MG|)9P4KXmcGO)BVFw-_Lure@U zappXUq9HdwB{QuOMT41@iKUgXB}7BQw44f{1`W6kC7HRY#U+Wk1t@yVt&9z=3=JWA z78-Z>GcYjPc)B=-WZZi@O`DI&P@v6TPN+#m!GMLgt$M)@7S8Ptg*4tZI_5cDTjS#B z)O0lD&EnV>(^8jTxbG8x*>C^cTy96l|Lek*ZQJ_Auc0}b;q5Zc5^i1Y(~@C%A}m4- z5lrsAS2G{EIchX6K6p)`k;PB!UgxRC`$`Gbd@A#V3-}WrO=GopP+)mb&2Y2$z{mOD zCON1FcXvn>CMQ^)=IyXiy>MyUI;}HLUUzGF%x8W*E9|!TY^n2&N{yxlt24J2Pi!(^ zDt&j)VPPTD&D#e54t4D`Z4tcSTBZB3PQ#jAPxW!tfq?s}Qyl&*ns?12bl$3smDS;Y zrMR3pmy{BzK>dyTog1kUT_|LWPRa7+y+r#*fV&#`njxgN@xNAOm@Z+ literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.96x96.png b/branding/desktop/pixel/mask/alpha/logo.alpha.mask.foreground.96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..0ca63a7dd4e8243c23c26d1f127070c307d0c61a GIT binary patch literal 669 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcgn3BBRT^JZv^(q?ydF&;gzOL-A zxcJ%Sxy|IG6@WsjC9V-ADTyViR>?)FK#IZ0z{pJ3&_LJFG{nH%%D~dfz)ah~z{%F!W zjJMyMxa?GJ;Wf?ikadIj2HhTe?@8w-zs>wMDRsgJz6Y#RluFiRl(W8Ph;y)Wnt!&q zJ$>QcwG4ZhD;U3>cM^|gtYH7Zy!30)U-HN$W`eF zT$(#DzT*|>~{QLNw{wltUJUhSTm;6lu>%S7Z@W!38wyrV-mXpd`vYzFqyuA{#P~7uU zbfpnUTlQKf(TAK5WDjshWQ%gWIW_qqkg4IS5nj)?c;4!)l`Eb8xwR#pbGvr#?I$Ks q_&ibGa*p|!ASf7Qju*=ES4z)+>ez|hdb!0-zw z)bN6Vq11qZ;Z*_ygVhWM2JwP9y8>;168r%^A+A7Lv-7mmzUMlAQ?{SJ{w%io3Q&l# zB*-tA!Qt7BG$4n)#M9T6{S_BKyPW7%?r4|711kfADXexgQ8eV{r(~v8qG&L&GO@5SHh^fTn(+M|P=f~ChLX(O z)Z&uF+yWFmKpPCKj0_=q4%9uF#K6FI$J50zq~g}wO9yig8;GzvZeJjFrzyJNzv)w% zIF^G+9_i^^0$+Z9`v^3isvxi2XWK73KMn;yhC-$eVTU;kk5~lM8!Q-)aFQjoqj1CX zvn-n|$<>cxvAK1_>c%y7{W4TDvD~Lj>_GO0U$#XQ`4riucdi~h*K=Q*UF=92^~}7> zIEPoO;Vku{=J6tbcF_Y=bfLwEH;$|uB&iiM1)D!MeDA!<{{QO&CV>V976k@I4hIGh zGfZBm;UvEnoR1`hgSp{XJ!`?|W-f?+6h#ew499`C>^Iw9b-rId1Z)9{0-V+)eEt6} z?dv>w`xVHJ!>zaG<-tE{*jL^JD{<9&6O59g_swn#0K6rNXZethIrwIsD1 z(6HlXGj~EUHA*mWNacNdz;uIpVZOUMfw6{a`9#3Hx_~iFVdQ&MBb@0LFv)f&c&j literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/logo.mask.128x128.png b/branding/desktop/pixel/mask/logo.mask.128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..4207f537013007df60b2a5f30216da0a7afbbe55 GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLDIg=CK)Uj~LMHK2G41H&(n{0jz# zQUeBtR|yOZRx=nF#0%!^3bX-A@CW#WxB_X-&eKl&p6mEc*?#)^v)Jk@Kq1DGAirP+ zhi5m^fE@M`PhVH|S6uw;a-vtc!UE6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!tVz$e5NNNaYUcG~w`$8XB^)7PKHR$l=MF_r}R z1v5B2yO9Ruu$OrHy0X9G;%Ao=y~-WV1Qb#&ag8WRNi0dVN-jzTQVd20MrOK(2D*l( zAqM7FKxAyDZD3$!U@(Q%ZYGL`-29Zxv`Q2WCRQdER>lSp4OJ7q-vesUfZI@#nVVW% zl9*e7q6cV$ft8UVM9+b`CzF7B)_S@)hE&{od+Q=+vw?_1V0c06x({J5{uzr(O)v@c zyw%Y<=eO+rpMuPvrnyd1@w{|*Z79P5@dJ-HALL2!N=RmCC|jVxD9FgLh56`hNkL`a z12qn_xEa1Mt*p^wxWIj-n6Y6`N5wvCtG(9Z3>x$9?@M)O_hVv+YKR9$K!e$XKc`q2 zR6J)be{}!*kH10(QVys_do|2#s4-?>c)|MWuMoq6)us9j4nUhHeL23Dp@T7G*OVg_ R%|M4Uc)I$ztaD0e0su*?o=E@z literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/logo.mask.256x256.png b/branding/desktop/pixel/mask/logo.mask.256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..9172fbd9fb9decde89dc39e5275f4a356b39d975 GIT binary patch literal 526 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HI@*(1o8fuTx`fuW&=f#DZW zsNn?zL#Y7+!>a@a2CEqi4B`cIb_Lo1CHMn;LR^8gX6I?Aeb06Lrfffb{aI}F6`&Af zNswPKgTu2MX+REpiKnkC`ztPfb~(|j+~G_>A=MJsh?11Vl2ohYqEsNoU}RuqrfX=R zYiJr`U~UCO#%9_E237_JQ&{b0qG-s?PsvQHMA2YkWny7vYyip)z4*}Q$iB}a%h>J literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/logo.mask.32x32.png b/branding/desktop/pixel/mask/logo.mask.32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..743a518e99e010ebf7fb84618133611211dd8aca GIT binary patch literal 325 zcmV-L0lNN)P)Px#|4BqaR9J=Wl|Kr?Fcii=|BTK;p%)Ok_5wYCi`Q@vK|F(tIP@AWF5S9ykgP&4 zPzX4?$3Y|7zP7KDv`c*rtzH0LHi9*4Mpv7Qp3pS$FQNy)>dG zSPmSc8316H*_PuN09MvUsjSq$9y(34p2J^NKux^f1egqtE{(`^U=7OwTfrR;2LL<) XFXKt?j8TFb00000NkvXXu0mjfu}OjA literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/logo.mask.512x512.png b/branding/desktop/pixel/mask/logo.mask.512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..371f72d4afad1121ee12b227bfb485e4db6b29bb GIT binary patch literal 850 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7+9Er6kFKIlR!!#*(1o8fuTx`fuW&=f#DZW zsNn?zL#Y7+!>a@a2CEqi4B`cIb_Lo1CHMn;LR^8gX6I?Aeb06Lrfffb{aI}F6`&Af zNswPKgTu2MX+REpiKnkC`ztPfb~(|j+~FWgRZCnWN>UO_QmvAUQh^kMk%5t!uAzah zp=pSLxfKu@n`s*uSQ!{hVYQoyq9HdwB{QuOMT3cziG`K10YpR9gzxu&8Z_WGlw{_n z7MCRE7NF<>+F)R1WC+o7pzg^eU`WV#x;TbZ+T{F)~D!9=Szoo|(J!b_v0tI|wzM(yvj|D{x$hmOmg8-V?fkO;i zpE9h^zgUeX!N72fF)O}ChTET+5nW1y4P9ggyTbY{8t9@4H4WEXF?4@tmSNwsd7a#! z*Nf0KH2i0r6PvQ**PS>FUGw-2e9)C+@DDgK?6sdE0ZdUSAit?6a2d7Nu!tm?NMQuI#V4_}S$|uX2Yo0fkgcTq8N=mFYbU}arUP~d4z46D%IBf5*}_xY4Hg8EuZ z^|O+GbP0l+XkKJ~V+4 literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/logo.mask.96x96.png b/branding/desktop/pixel/mask/logo.mask.96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..6d32f4d725f5b79dfcc09f052adba5137edcef29 GIT binary patch literal 447 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeE3?v1%WpM*3g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C-zo@Ck7R(wd#8o%TJ~@td;!^z~=4)mMN*j3q&S z!3+-1ZlnP@>?NMQuI#V4_}S$|uX2Yo0fkgcTq8N=mFYbU}aM(P0kP&29AS*uO z`d+Rr^2Za)PZrh6Z*eGPXqPyU`k!U_WHp9s;inIM=DYKAs&bQ5&H;aJn}oUX83)V) fKQf%&G%uHlLp@}-_s8oXM=^N1`njxgN@xNAkWh=u literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/logo.mask.foreground.1024x1024.png b/branding/desktop/pixel/mask/logo.mask.foreground.1024x1024.png new file mode 100644 index 0000000000000000000000000000000000000000..d84ba3d909a935237d49e6c7d77a7b38cb579546 GIT binary patch literal 2926 zcmeAS@N?(olHy`uVBq!ia0y~yU;#2&7+9ErRIjnw1|X%7>=ES4z)+>ez|hdb!0-zw z)bN6Vq11qZ;Z*_ygVhWM2JwP9y8>;166ygyA+A6=wxHKNFtL5n?xJ_kBf`S!t18Wm zjFpv@rKF@hJv|-m?3d1+Y4JlAWEo>gkY6x^!?PP{Kn{C}r>`sfD=vO^Ink@!;Y>gw z)e_f;l9a@fRIB8oR3OD*WME{bYiOWrXc}T*ZUscfX4(b@Rt5%BSnXz_Xvob^$xN$6 z(O_a_Vs2$(3ej*mt?MmNg9hA&lFZ!H;*!MN0u((!8w{+B3?X_B)IFKRz`&*8>Eakt zaqI0J@2%3|BCdhK9Ift(B0dL2oDPCWAY#(W4VN-C`EqmB_GfSI^}Tv?_1biOplzgp z1ONY&7Rs}~u8uob<-pjpmR;n)je%##^8fmNl;e>fQ-`p_9EL|M0_qJGj7K;X{1^(! z6MCo9u%5lYuD*n!X~#rr7zlQWHTQ$NoDZnz$~O(~-&t&6$lD?pz>xf!k=0<^z%!0F zul@hw;XV6~9~K+;eZMV8od^Mj-+bMM%?j7P*IAPnrDUfC`fGewv0!s^TrYzk2l*)& z#nlY|KHO{)IM7RZ#()^hQ2*mc%C+x%=6p?Hl8EM4YuGs84D>?G;$!dfsQ21Hm+b>O zaWF8JH~&8zyf;>WsX~{cvI!Bh&ln~C?A>F-!MI19N+!n19r)gy?<4zNz@djq#a_Pr zf$zfhac`b?#}!?_>adyv2P`g>+7Mlj6z4GeOE2iD5}c$?e3>*?y}vd$@?2>=|A4A}qx literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/logo.mask.foreground.128x128.png b/branding/desktop/pixel/mask/logo.mask.foreground.128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..ea37e0b3d2ef941eb77aa343be9d7bc11888d9d3 GIT binary patch literal 537 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLDIg=CK)Uj~LMHK2G41H&(n{0jz# zQUeBtR|yOZRx=nF#0%!^3bX-As0a9jxB}_ef?oH)#P&tIi{3qt2n(yPsx&h)R#sM) zl9KZD^mMedUpjZD#Sd8)pi;(?AirP+hi5m^fE@M`PhVH|S6uw;a-vtc!pA zc@HZHv?c1Canc2%gha7(Ok(GpbgwwM>bB&_a_ijL_T*6cceOuCwRHgtcn^NwGhJ`) zw4*`=xn@2M46m#Dge6oQ8ont-F;%sn6uMyV!{@VQs%*gneusS)b-zwBFxUx}HTZnl z#9X21;yA;h$J~)OsmkG7MKc3KhstdY_ZCh8!KGSh&vF;9sy)tns>JK7rl!NZ+8(C` zOqE+2zZW!abhY72arm$Mg8A3-K^M$uC>uz@W1pL>yw3y^V0WOU%0VVcB1wf RYoNCnJYD@<);T3K0RZNgu=W4| literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/logo.mask.foreground.192x192.png b/branding/desktop/pixel/mask/logo.mask.foreground.192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..07c60e41ba6738f71a06f70ce68aa609e3c57a4f GIT binary patch literal 577 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvG8AvYpRA>UE6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4NyWoz$e5NNXHiRx(6nz{~) zy>XGZSwX}hFzf}_nhT;ajiS2_MK9Fe!KA&T$=P&bON4XdkDQPl-<$Oh|8#WdRa8>S zTJ7$7EsCMR=7Y{sBZgg!ZHYH}q!actUf>OgS;oLnx!~Ce7KRhdrl+syF*0N{WWNUr zf`D4gDy{YL3=Ce(3=1-@urN4$xjx6L;T+@hJKnM97&2rnQohY$yuhfS^lPr3iW0+I z=1pJxO!X??t6nt$Mqc4Jh8ZD(9Q^B#XD~3dY~=XE#o(~n=XoU?L&j5E1`GKcdwuka z)tKk-sH}hgxcqp%Jc9}Qo&WKy2WB2HRORWde<3VDNPHb6Mw< G&;$UEuey-{ literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/logo.mask.foreground.256x256.png b/branding/desktop/pixel/mask/logo.mask.foreground.256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..e6dac7df65b4e4f6976fbbb4a2fed4f2ba043761 GIT binary patch literal 649 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HI@*(1o8fuTx`fuW&=f#DZW zsNn?zL#Y7+!>a@a2CEqi4B`cIb_Lo1CDa3aLR^7#Y(cMkU}F2C-9_)7M}&pdS5=xB z87nI*OG!z2dU`tA*)N?t)8dCL3s5OzNswPKgTu2MX+REpiKnkC`ztPfb~(|j+~G_> zA=MJsh?11Vl2ohYqEsNoU}RuqrfX=RYiJr`U~UCO#%9_E237_JQ&{b0qG-s?PsvQH zMA2YkWnyk+VhYi4Ij!q0P=f~ChLX(O)Z&uF+yWFmKpPCKj0_=q4%9uF1a!2ur;B4q z#jUqDqI+8mBpL#BdRn6*xFaOEvloh8I}~w%Nlaj?;zG`w0%cYYuNCc^zVE^po4*Tl zr93C8c+UEILZ?LlXz?rNn$#_pKu22BWWjw3K=0^}9GCjt3Dx?G@D z6Bz8jnf&BkfEr<7Hq)i%!|ME^Kz=EM9Vp z)E>-OE%#3hWJ8HVkKwzo#*?JZ1C?kn3oNe-tMV<4y?%7+uYK=x6?Z>|4U9~Y2!w&O=w+laQy|7S! wDNwYX@f$E@J^0n24778Ho&(VDmvn!#-kfu#zxSn_Jx~RMr>mdKI;Vst0E{xlCjbBd literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/logo.mask.foreground.32x32.png b/branding/desktop/pixel/mask/logo.mask.foreground.32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..f08ca77e71d4aaa3988e7dc416434895a453922f GIT binary patch literal 441 zcmV;q0Y?6bP)Px$b4f%&R9J;$U>F4h3>c9)u?4;VNzwf3;T49R>*q5Pp%f=zK^M?6(j&fasPhSZP`Sj3~Hv?h?_OUp>6SASRDHbjWf5 zscGQVL&`!2YZQ0|v0V zIwCBL?4lJPSg~pqhJ6?U5n*Bf)m4;fVL!voJ9jZ0fx@As<+vPyk`3?Oxl2>avDtx9 z7oaPA`|$%#!@ht2&cMLHz@V?M&+zu;E1c@Md3YGaCB(7HVRZnyEAQUDi!+N!NlC#I ztdfc{!@WCqG3c*fzA(Ie!GP5fIE!K>GSULf;pj920|Ud?FJG|g!RY{U(gV!V=yZN| z8cscQ34w`IXOZpzYK8yU8;Is}E@bmH# jsgi&L=usGrfa@a2CEqi4B`cIb_Lo1CDa3aLR^7#Y(cMkU}F2C-9_)7M}&pdS5=xB z87nI*OG!z2dU`tA*)N?t)8dCL3s5OzNswPKgTu2MX+REpiKnkC`ztPfb~(|j+~FX{ zsFt`!l%ynogb1NV+Hq$mRure^1!fH1YMMG|WN@iLm ziUt!a6LTvQQ;3GkX+F)R1WC+o7pzg^eU7#Q{`UOC8j{e~ZI-i2y?sGtJ>#a;KT z;Sw-y;E;JadAF<%Oaw+d{QU5~Ig}Ta7QkS^cLfL|!M$NI-+DH;$HU#jI#z3>EST)6m5j(36--=A(a%3VcCnV!RhiK&m}m{an^LB{Ts50o~NM literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/logo.mask.foreground.64x64.png b/branding/desktop/pixel/mask/logo.mask.foreground.64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..33c790b77bcf7b3f2ac67b7f313db0f483255710 GIT binary patch literal 492 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|eg=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C&q?@Ck7R(y;}-?tzKzi*^^idma%MR$o~3^XlK84?o5jxvMfNQj3q&S!3+-1ZlnP@>?NMQuI#V4_}S$|uX2Yo0fkgc zTq87^bD-|YB%q#oo-U3d9>?!q zO5|-&5NJ!(ifH5t+i)m!!=dnlTp=5pM0uXN%za+QQQjl}>(l9v z31n#7p)|pTF(LW}gZyPSx#X~Bx8!Z?`%cHq)T!VSE|{0j^mXD4rVAQwM-@K)6N_Z< zVqs-iwpbudMpug=!AkxRPZxJLmjHXXmO{?PR}Pc&FU&n$c_s1v+xR^Vw|-ApBT}=U ZH(`#hhko;p*Fcvtc)I$ztaD0e0stuToF)JO literal 0 HcmV?d00001 diff --git a/branding/desktop/pixel/mask/logo.mask.foreground.96x96.png b/branding/desktop/pixel/mask/logo.mask.foreground.96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..813d3478b8920aac0c4630f7e6ba0c6759dd6d80 GIT binary patch literal 546 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeE3?v1%WpM*3g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!a1C&q?@Ck7R(y;}-?tzKzi*^^idma%MR$o~3^XlK84?o5jxvMfNQj3q&S!3+-1ZlnP@>?NMQuI#V4_}S$|uX2Yo0fkgc zTq8x^`F@S@f`C-tLPp6cd<|?hbt^256{OlCGnS#aWUp?UK^vtbs_k$ dhC~$ugGc;|wcm{Oe**o-;OXk;vd$@?2>@65s%`)P literal 0 HcmV?d00001 diff --git a/src/Client/UniScan.Client.App.Platform.Android/Icon.png b/src/Client/UniScan.Client.App.Platform.Android/Icon.png deleted file mode 100755 index 3c39845930eae5a98e094bdada0da2d6646bf9ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11731 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 diff --git a/src/Client/UniScan.Client.App.Platform.Android/MainActivity.cs b/src/Client/UniScan.Client.App.Platform.Android/MainActivity.cs index f0d44e3..12aef3d 100755 --- a/src/Client/UniScan.Client.App.Platform.Android/MainActivity.cs +++ b/src/Client/UniScan.Client.App.Platform.Android/MainActivity.cs @@ -8,7 +8,7 @@ namespace UniScan.Client.App.Platform.Android; [Activity( Label = "UniScan", Theme = "@style/MyTheme.NoActionBar", - Icon = "@drawable/icon", + Icon = "@mipmap/ic_launcher", MainLauncher = true, ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode)] [IntentFilter(["android.intent.action.MAIN"], Categories = ["android.intent.category.LEANBACK_LAUNCHER"])] diff --git a/src/Client/UniScan.Client.App.Platform.Android/Properties/AndroidManifest.xml b/src/Client/UniScan.Client.App.Platform.Android/Properties/AndroidManifest.xml index b9f0c58..77a7ebd 100755 --- a/src/Client/UniScan.Client.App.Platform.Android/Properties/AndroidManifest.xml +++ b/src/Client/UniScan.Client.App.Platform.Android/Properties/AndroidManifest.xml @@ -1,7 +1,7 @@  - + diff --git a/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-night-v31/avalonia_anim.xml b/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-night-v31/avalonia_anim.xml deleted file mode 100755 index dde4b5a..0000000 --- a/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-night-v31/avalonia_anim.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-v31/avalonia_anim.xml b/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-v31/avalonia_anim.xml deleted file mode 100755 index 94f27d9..0000000 --- a/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-v31/avalonia_anim.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-xxxhdpi/ic_desktop.png b/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-xxxhdpi/ic_desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..7742027e317fa8493312609fa66e007abe4e9171 GIT binary patch literal 2124 zcmeAS@N?(olHy`uVBq!ia0y~yVB7%09Be?56MhC-KuRImBgmJ5p-PQ`p`nF=;TKS- z;RORjsR0ASs{{rHs~HRo;stYd1=;{5*pj^6U4S$Y{B+)352V;jJbhi+UvcrXi^wY4 zo9_Y&sg}4#l%ynogV=H4bD`O*V0|P4qgKL*-l~FY0 z=BH$)RpQpLyzl6Ipau=N4JDbmsl_FUxdkYC%&m+Jtc)xnmKe#GngZRa*D>}q9qxit6eOOxOi1uyO?v%c-swB9E8p+QfA&3E?tS(9J+EIJm)~buZo~+5 z;BW`eQdfRui^y3&|L=pk*S0D*b{M{m*2aIOOV^%CuP^_5@!Z$% z_bW3m{GL<&{q(u7>EHhce~mjE^pfG;$qp&o9C2*6>V{VE|Cqn8?UBI#d)4cT|K8(1 z&tEk^sQLZL*!x>{*zWaOdwy%U-MS+G%RcMpe5@C7#b!w6j}05V&hC!Vb>THXk;cTV zFo^*Ts~ZL1T{&5O^_<)0f31_}=bTNSu9sOGG!>g4qdIynU4Kyh>p`Q|e8ahA>+63! z`n2G?WqIzl-znK%_Qtn5ds4C4@r{44*I7eeyR4rtpT~FAFI(s#FD$_@kp&IUY4uqD z+LqUF#liCu$up4>KP)3GX+3d=CwKPW!sq9&Mc>++UGOMYA5znAehbX(5% zqVJP8hJRbT<(`yv3pO7>VkyM@_2I~H`@gGhmhawLx4HQ5#6w@p&+U(TTKrw!=EBZ< zuCe|PWgopryrzx%u5dhl#)#zl3UIXgowR(t8TMD65v7cX4D@~c{7tFXGT zuFEUzsd3`Y$SvC*E;8l)t@9|dBY*Etx97ip`s;1k7yCv4YXmA9nQyk^He4BMaYbof z>xx{DY+TB2wLR7anyI>b`gG}gnq@-Rf_RI-%Dijoa{sCyhD`l_^Uj?)uWKs>x+}zz zR_5;5l%IO8ynXH|>>2&pvMYW%ardhZ^V)1n_kXSHz=Pd<$)(qJwlQFhK43JC1n}ak Y{MpIur!ESgUj*{5r>mdKI;Vst0CZY$82|tP literal 0 HcmV?d00001 diff --git a/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-xxxhdpi/ic_desktop_cutout.png b/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable-xxxhdpi/ic_desktop_cutout.png new file mode 100644 index 0000000000000000000000000000000000000000..18270f35eb882dbc41e5c25409a4bb1805217257 GIT binary patch literal 1889 zcmeAS@N?(olHy`uVBq!ia0y~yVB7%09Be?56MhC-K#DEN+ua371Hn({-St3 z85p?8Pm@E@kei>9nO2EggQ=6=BA^BhxD6$lxv9k^iMa)6dW;OLjEy0dL><+73Uqm{ zr;B4q#jUq@H)e@CO0*>^PrG{>4_z?)Ry*& zb*(jj@aAOCX6xU%^Onm@wk`H+ncg_x^7=YPpc{re@V+U%moe=9*B87kJ2ckJ@4F|F zbM@;*X@&+dCN>8ZMrMUc4U7Vw2N*g^lE1KZe69Gx<|HG2%~$sPOPzTtBAevLKuD{IajKlJOj-|rZw%rARWd*sXx;_&}+ z;s0eZALnT9=YDo0SxTfg3(JMVJ#{Frm?7o`)Tv6;C{Ak)|+o++SOB zu7BqDlTWAoJ3qs3Nhh{&H8Z$^qwy^Kk)3Q zy_+z$aMN^|7GjjVkRgAj=h+9_|Ejr z^LT6Wx32%Y_4HN6n5V?7D#%XlSEVUKFnnPxfLfu?zX6aSa9V-a?hrk=D2VKi=%+?H4=c&FK+$(u#!`1D?Wp~>*?y} Jvd$@?2>`z>{kH%B literal 0 HcmV?d00001 diff --git a/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable/splash_screen.xml b/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable/splash_screen.xml index 2e920b4..d48db39 100755 --- a/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable/splash_screen.xml +++ b/src/Client/UniScan.Client.App.Platform.Android/Resources/drawable/splash_screen.xml @@ -5,7 +5,7 @@ - diff --git a/src/Client/UniScan.Client.App.Platform.Android/Resources/mipmap-anydpi-v26/ic_launcher.xml b/src/Client/UniScan.Client.App.Platform.Android/Resources/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..1256e1c --- /dev/null +++ b/src/Client/UniScan.Client.App.Platform.Android/Resources/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/Client/UniScan.Client.App.Platform.Android/Resources/values-v31/styles.xml b/src/Client/UniScan.Client.App.Platform.Android/Resources/values-v31/styles.xml index c6fd4b5..1dc571f 100755 --- a/src/Client/UniScan.Client.App.Platform.Android/Resources/values-v31/styles.xml +++ b/src/Client/UniScan.Client.App.Platform.Android/Resources/values-v31/styles.xml @@ -8,8 +8,8 @@ false @null true - - @drawable/avalonia_anim + @color/splash_background + @drawable/ic_desktop 1000 @style/MyTheme.Main diff --git a/src/Client/UniScan.Client.App.Platform.Android/Resources/values/colors.xml b/src/Client/UniScan.Client.App.Platform.Android/Resources/values/colors.xml index 59279d5..6539c78 100755 --- a/src/Client/UniScan.Client.App.Platform.Android/Resources/values/colors.xml +++ b/src/Client/UniScan.Client.App.Platform.Android/Resources/values/colors.xml @@ -1,4 +1,5 @@  + #FFFFFF #FFFFFF diff --git a/src/Client/UniScan.Client.App.Platform.Android/UniScan.Client.App.Platform.Android.csproj b/src/Client/UniScan.Client.App.Platform.Android/UniScan.Client.App.Platform.Android.csproj index 54ffcb7..638c231 100755 --- a/src/Client/UniScan.Client.App.Platform.Android/UniScan.Client.App.Platform.Android.csproj +++ b/src/Client/UniScan.Client.App.Platform.Android/UniScan.Client.App.Platform.Android.csproj @@ -9,19 +9,13 @@ false UniScanProject UniScan Android - 0.0.5 - 0.0.5 - 1 + 0.0.6 + 0.0.6 + 2 $(AssemblyVersion) UniScan client for Android - - - Resources\drawable\Icon.png - - - diff --git a/src/Client/UniScan.Client.App.Platform.Browser/UniScan.Client.App.Platform.Browser.csproj b/src/Client/UniScan.Client.App.Platform.Browser/UniScan.Client.App.Platform.Browser.csproj index 9e50183..8ea7673 100755 --- a/src/Client/UniScan.Client.App.Platform.Browser/UniScan.Client.App.Platform.Browser.csproj +++ b/src/Client/UniScan.Client.App.Platform.Browser/UniScan.Client.App.Platform.Browser.csproj @@ -11,7 +11,6 @@ false false - 0.0.2 UniScan Web UniScanProject UniScan client for web browsers (https://uniscan.dexrn.me) @@ -20,8 +19,8 @@ https://github.com/UniScanProject/UniScan UniScanProject UniScan Web - 0.1.3 - 0.1.3 + 0.1.4 + 0.1.4 diff --git a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/app.webmanifest b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/app.webmanifest index 9e1254f..e7c7d64 100644 --- a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/app.webmanifest +++ b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/app.webmanifest @@ -3,22 +3,22 @@ "name": "UniScan Web", "icons": [ { - "src": "/assets/branding/logo.svg", + "src": "/assets/branding/desktop/pixel/logo.svg", "sizes": "any", "type": "image/svg+xml" }, { - "src": "/assets/branding/logo.128x128.png", + "src": "/assets/branding/desktop/pixel/logo.128x128.png", "sizes": "128x128", "type": "image/png" }, { - "src": "/assets/branding/logo.192x192.png", + "src": "/assets/branding/desktop/pixel/logo.192x192.png", "sizes": "192x192", "type": "image/png" }, { - "src": "/assets/branding/logo.512x512.png", + "src": "/assets/branding/desktop/pixel/logo.512x512.png", "sizes": "512x512", "type": "image/png" } diff --git a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/index.html b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/index.html index 74db053..3f4cfd3 100755 --- a/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/index.html +++ b/src/Client/UniScan.Client.App.Platform.Browser/wwwroot/index.html @@ -4,15 +4,15 @@ UniScan Web - + - - - - - + + + + + - + @@ -42,11 +42,11 @@ - - - - - + + + + + diff --git a/src/Client/UniScan.Client.App/Views/Global/LoadingView.axaml b/src/Client/UniScan.Client.App/Views/Global/LoadingView.axaml index b8d8d7c..9b1f353 100644 --- a/src/Client/UniScan.Client.App/Views/Global/LoadingView.axaml +++ b/src/Client/UniScan.Client.App/Views/Global/LoadingView.axaml @@ -9,7 +9,7 @@ x:DataType="global:LoadingViewModel"> - + diff --git a/src/Client/UniScan.Client.App/Views/MainWindow.axaml b/src/Client/UniScan.Client.App/Views/MainWindow.axaml index 8df455c..a5a1103 100755 --- a/src/Client/UniScan.Client.App/Views/MainWindow.axaml +++ b/src/Client/UniScan.Client.App/Views/MainWindow.axaml @@ -5,7 +5,7 @@ xmlns:views2="clr-namespace:UniScan.Client.App.Views" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="UniScan.Client.App.Views.MainWindow" - Icon="/Assets/Branding/logo.ico" + Icon="/Assets/Branding/desktop/pixel/logo.ico" Title="UniScan"> diff --git a/src/Server/UniScan.Server.Core/UniScanServer.cs b/src/Server/UniScan.Server.Core/UniScanServer.cs index 2a02c78..bdfeead 100755 --- a/src/Server/UniScan.Server.Core/UniScanServer.cs +++ b/src/Server/UniScan.Server.Core/UniScanServer.cs @@ -87,7 +87,7 @@ public class UniScanServer Uri("https://github.com/UniScanProject/UniScan")), new RemoteLink(new - Uri("https://uniscan.dexrn.me/assets/branding/logo.512x512.png"), + Uri("https://uniscan.dexrn.me/assets/branding/desktop/pixel/logo.512x512.png"), "UniScan Web", new Uri("https://uniscan.dexrn.me")), diff --git a/template/README.md.template b/template/README.md.template index 081f700..36f89e2 100644 --- a/template/README.md.template +++ b/template/README.md.template @@ -1,5 +1,5 @@

-UniScan logo +UniScan logo

UniScan

![GitHub Release](https://img.shields.io/github/v/release/UniScanProject/UniScan?sort=date&filter=UniScan.Client.App%2F*&label=Client)