Skip to content

Commit

Permalink
💾 Feat(Dashboard): Enable to input verification code.
Browse files Browse the repository at this point in the history
  • Loading branch information
Dynesshely committed Mar 2, 2024
1 parent 0ad402c commit 2107c09
Show file tree
Hide file tree
Showing 28 changed files with 665 additions and 39 deletions.
5 changes: 5 additions & 0 deletions KitX Dashboard/App.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,11 @@
<NativeMenuItem Command="{Binding PluginLauncherCommand}" Header="{DynamicResource Text_Public_ShowLauncherWindow}"/>
<NativeMenuItemSeparator/>
<NativeMenuItem Command="{Binding ViewLatestAnnouncementsCommand}" Header="{DynamicResource Text_Public_ShowAnnouncements}"/>
<NativeMenuItem Header="{DynamicResource Text_Public_More}">
<NativeMenu>
<NativeMenuItem Command="{Binding OpenDebugToolCommand}" Header="{DynamicResource Text_Settings_General_OpenDebugTool}"/>
</NativeMenu>
</NativeMenuItem>
<NativeMenuItemSeparator/>
<NativeMenuItem Command="{Binding ExitCommand}" Header="{DynamicResource Text_Public_Exit}"/>
</NativeMenu>
Expand Down
1 change: 1 addition & 0 deletions KitX Dashboard/Configuration/ConfigBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ namespace KitX.Dashboard.Configuration;
[JsonDerivedType(typeof(PluginsConfig), typeDiscriminator: nameof(PluginsConfig))]
[JsonDerivedType(typeof(MarketConfig), typeDiscriminator: nameof(MarketConfig))]
[JsonDerivedType(typeof(AnnouncementConfig), typeDiscriminator: nameof(AnnouncementConfig))]
[JsonDerivedType(typeof(SecurityConfig), typeDiscriminator: nameof(SecurityConfig))]
public class ConfigBase
{
public string? ConfigFileLocation { get; set; }
Expand Down
8 changes: 8 additions & 0 deletions KitX Dashboard/Configuration/ConfigFetcher.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,12 @@ namespace KitX.Dashboard.Configuration;
public class ConfigFetcher
{
public static AppConfig AppConfig => ConfigManager.Instance.AppConfig;

public static AnnouncementConfig AnnouncementConfig => ConfigManager.Instance.AnnouncementConfig;

public static MarketConfig MarketConfig => ConfigManager.Instance.MarketConfig;

public static PluginsConfig PluginsConfig => ConfigManager.Instance.PluginsConfig;

public static SecurityConfig SecurityConfig => ConfigManager.Instance.SecurityConfig;
}
9 changes: 9 additions & 0 deletions KitX Dashboard/Configuration/SecurityConfig.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using System.Collections.Generic;
using KitX.Shared.CSharp.Device;

namespace KitX.Dashboard.Configuration;

public class SecurityConfig : ConfigBase
{
public List<DeviceKey> DeviceKeys { get; set; } = [];
}
29 changes: 29 additions & 0 deletions KitX Dashboard/Converters/ComparisonConverters.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
using System;
using System.Globalization;
using Avalonia.Data.Converters;

namespace KitX.Dashboard.Converters;

public class IntegerEqualConverter : IValueConverter
{
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is int a && parameter is int b)
return a == b;
else return null;
}

public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => throw new NotImplementedException();
}

public class StringEqualConverter : IValueConverter
{
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is string a && parameter is string b)
return a.Equals(b);
else return null;
}

public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) => throw new NotImplementedException();
}
31 changes: 31 additions & 0 deletions KitX Dashboard/Converters/EnumerableConverters.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using System;
using System.Collections;
using System.Globalization;
using System.Linq;
using Avalonia.Data.Converters;

namespace KitX.Dashboard.Converters;

public class GetEnumerableItemByIndexConverter : IValueConverter
{
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (parameter is null) return null;

if (parameter is int index || (parameter is string sindex && int.TryParse(sindex, out index)))
{
if (value is IEnumerable values)
return values.Cast<object>().ElementAtOrDefault(index);
else if (value is Array array)
return array.GetValue(index);
else
return null;
}
else return null;
}

public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
return null;
}
}
10 changes: 5 additions & 5 deletions KitX Dashboard/Instances.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ internal static void Initialize()
catchException: true
);
TasksManager.RunTask(
() => KeyHookManager = new KeyHookManager().Hook(),
location.Append("." + nameof(KeyHookManager)),
catchException: true
);
//TasksManager.RunTask(
// () => KeyHookManager = new KeyHookManager().Hook(),
// location.Append("." + nameof(KeyHookManager)),
// catchException: true
//);
TasksManager.RunTask(() =>
{
Expand Down
2 changes: 1 addition & 1 deletion KitX Dashboard/Languages/en-us.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
<x:String x:Key="Text_Public_Fixed">Fixed</x:String>
<x:String x:Key="Text_Public_Name">Name</x:String>
<x:String x:Key="Text_Public_Author">Author</x:String>
<x:String x:Key="Text_Public_More">More</x:String>
<x:String x:Key="Text_Log_Verbose">Verbose</x:String>
<x:String x:Key="Text_Log_Debug">Debug</x:String>
<x:String x:Key="Text_Log_Information">Infomation</x:String>
Expand Down Expand Up @@ -111,7 +112,6 @@
<x:String x:Key="Text_Settings_Personalise_DisplayLanguage">Display Language</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect">Mica Effect</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Enable">Enable Mica Effect?</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_EnableTip">Enable this effect only on Windows 11</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Opacity">Opacity</x:String>
<x:String x:Key="Text_Settings_Personalise_Palette">Palette</x:String>
<x:String x:Key="Text_Settings_Personalise_Theme">Theme</x:String>
Expand Down
4 changes: 2 additions & 2 deletions KitX Dashboard/Languages/fr-fr.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<x:String x:Key="Text_Public_Exit">quitter</x:String>
<x:String x:Key="Text_Public_ShowMainWindow">Afficher la fenêtre principale</x:String>
<x:String x:Key="Text_Public_ShowAnnouncements">Voir l'annonce</x:String>
<x:String x:Key="Text_Public_ShowLauncherWindow">Text_Public_ShowLauncherWindow</x:String>
<x:String x:Key="Text_Public_ShowLauncherWindow">afficher le lanceur</x:String>
<x:String x:Key="Text_Public_Millisecond">milliseconde</x:String>
<x:String x:Key="Text_Public_Second">deuxième</x:String>
<x:String x:Key="Text_Public_Minute">minute</x:String>
Expand All @@ -34,6 +34,7 @@
<x:String x:Key="Text_Public_Fixed">écurie</x:String>
<x:String x:Key="Text_Public_Name">Nom</x:String>
<x:String x:Key="Text_Public_Author">Auteur</x:String>
<x:String x:Key="Text_Public_More">Plus</x:String>
<x:String x:Key="Text_Log_Verbose">détaillé</x:String>
<x:String x:Key="Text_Log_Debug">débogage</x:String>
<x:String x:Key="Text_Log_Information">informations</x:String>
Expand Down Expand Up @@ -111,7 +112,6 @@
<x:String x:Key="Text_Settings_Personalise_DisplayLanguage">langue d'affichage</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect">Effet mica</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Enable">Activer ou non l'effet mica?</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_EnableTip">Cet effet n'est activé que sur les systèmes Windows 11</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Opacity">transparence</x:String>
<x:String x:Key="Text_Settings_Personalise_Palette">palette</x:String>
<x:String x:Key="Text_Settings_Personalise_Theme">thème</x:String>
Expand Down
4 changes: 2 additions & 2 deletions KitX Dashboard/Languages/ja-jp.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<x:String x:Key="Text_Public_Exit">終了する</x:String>
<x:String x:Key="Text_Public_ShowMainWindow">メインウィンドウを表示</x:String>
<x:String x:Key="Text_Public_ShowAnnouncements">お知らせを見る</x:String>
<x:String x:Key="Text_Public_ShowLauncherWindow">Text_Public_ShowLauncherWindow</x:String>
<x:String x:Key="Text_Public_ShowLauncherWindow">ランチャーを表示</x:String>
<x:String x:Key="Text_Public_Millisecond">ミリ秒</x:String>
<x:String x:Key="Text_Public_Second">2番目</x:String>
<x:String x:Key="Text_Public_Minute">分</x:String>
Expand All @@ -34,6 +34,7 @@
<x:String x:Key="Text_Public_Fixed">安定</x:String>
<x:String x:Key="Text_Public_Name">名前</x:String>
<x:String x:Key="Text_Public_Author">著者</x:String>
<x:String x:Key="Text_Public_More">もっと</x:String>
<x:String x:Key="Text_Log_Verbose">详细</x:String>
<x:String x:Key="Text_Log_Debug">调试</x:String>
<x:String x:Key="Text_Log_Information">情報</x:String>
Expand Down Expand Up @@ -111,7 +112,6 @@
<x:String x:Key="Text_Settings_Personalise_DisplayLanguage">表示言語</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect">Mica 効果</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Enable">Mica 効果を有効にするかどうか?</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_EnableTip">この効果は、Windows11 システムでのみ有効になります</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Opacity">透明性</x:String>
<x:String x:Key="Text_Settings_Personalise_Palette">パレット</x:String>
<x:String x:Key="Text_Settings_Personalise_Theme">テーマ</x:String>
Expand Down
4 changes: 2 additions & 2 deletions KitX Dashboard/Languages/ko-kr.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<x:String x:Key="Text_Public_Exit">그만두다</x:String>
<x:String x:Key="Text_Public_ShowMainWindow">메인 창 표시</x:String>
<x:String x:Key="Text_Public_ShowAnnouncements">공지사항 보기</x:String>
<x:String x:Key="Text_Public_ShowLauncherWindow">Text_Public_ShowLauncherWindow</x:String>
<x:String x:Key="Text_Public_ShowLauncherWindow">런처 표시</x:String>
<x:String x:Key="Text_Public_Millisecond">밀리초</x:String>
<x:String x:Key="Text_Public_Second">초</x:String>
<x:String x:Key="Text_Public_Minute">분</x:String>
Expand All @@ -34,6 +34,7 @@
<x:String x:Key="Text_Public_Fixed">결정된</x:String>
<x:String x:Key="Text_Public_Name">이름</x:String>
<x:String x:Key="Text_Public_Author">작가</x:String>
<x:String x:Key="Text_Public_More">더</x:String>
<x:String x:Key="Text_Log_Verbose">상세한</x:String>
<x:String x:Key="Text_Log_Debug">디버깅</x:String>
<x:String x:Key="Text_Log_Information">정보</x:String>
Expand Down Expand Up @@ -111,7 +112,6 @@
<x:String x:Key="Text_Settings_Personalise_DisplayLanguage">표시 언어</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect">운모 효과</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Enable">운모 효과 활성화 여부?</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_EnableTip">이 효과는 Windows 11 시스템에서만 활성화됩니다.</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Opacity">투명도</x:String>
<x:String x:Key="Text_Settings_Personalise_Palette">팔레트</x:String>
<x:String x:Key="Text_Settings_Personalise_Theme">주제</x:String>
Expand Down
4 changes: 2 additions & 2 deletions KitX Dashboard/Languages/ru-ru.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<x:String x:Key="Text_Public_Exit">покидать</x:String>
<x:String x:Key="Text_Public_ShowMainWindow">Показать главное окно</x:String>
<x:String x:Key="Text_Public_ShowAnnouncements">Посмотреть объявление</x:String>
<x:String x:Key="Text_Public_ShowLauncherWindow">Text_Public_ShowLauncherWindow</x:String>
<x:String x:Key="Text_Public_ShowLauncherWindow">шоу-пусковая установка</x:String>
<x:String x:Key="Text_Public_Millisecond">миллисекунда</x:String>
<x:String x:Key="Text_Public_Second">второй</x:String>
<x:String x:Key="Text_Public_Minute">минута</x:String>
Expand All @@ -34,6 +34,7 @@
<x:String x:Key="Text_Public_Fixed">стабильный</x:String>
<x:String x:Key="Text_Public_Name">Имя</x:String>
<x:String x:Key="Text_Public_Author">Автор</x:String>
<x:String x:Key="Text_Public_More">Более</x:String>
<x:String x:Key="Text_Log_Verbose">подробный</x:String>
<x:String x:Key="Text_Log_Debug">отладка</x:String>
<x:String x:Key="Text_Log_Information">Информация</x:String>
Expand Down Expand Up @@ -111,7 +112,6 @@
<x:String x:Key="Text_Settings_Personalise_DisplayLanguage">язык отображения</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect">Эффект слюды</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Enable">Включить ли эффект слюды?</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_EnableTip">Этот эффект включен только в системах Windows 11.</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Opacity">прозрачность</x:String>
<x:String x:Key="Text_Settings_Personalise_Palette">палитра</x:String>
<x:String x:Key="Text_Settings_Personalise_Theme">тема</x:String>
Expand Down
2 changes: 1 addition & 1 deletion KitX Dashboard/Languages/zh-cn.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
<x:String x:Key="Text_Public_Fixed">固定</x:String>
<x:String x:Key="Text_Public_Name">名称</x:String>
<x:String x:Key="Text_Public_Author">作者</x:String>
<x:String x:Key="Text_Public_More">更多</x:String>
<x:String x:Key="Text_Log_Verbose">详细</x:String>
<x:String x:Key="Text_Log_Debug">调试</x:String>
<x:String x:Key="Text_Log_Information">信息</x:String>
Expand Down Expand Up @@ -111,7 +112,6 @@
<x:String x:Key="Text_Settings_Personalise_DisplayLanguage">显示语言</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect">云母效果</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Enable">是否启用云母效果?</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_EnableTip">此效果仅限 Windows 11 系统开启</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Opacity">透明度</x:String>
<x:String x:Key="Text_Settings_Personalise_Palette">调色板</x:String>
<x:String x:Key="Text_Settings_Personalise_Theme">主题</x:String>
Expand Down
4 changes: 2 additions & 2 deletions KitX Dashboard/Languages/zh-tw.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<x:String x:Key="Text_Public_Exit">退出</x:String>
<x:String x:Key="Text_Public_ShowMainWindow">顯示主窗口</x:String>
<x:String x:Key="Text_Public_ShowAnnouncements">查看公告</x:String>
<x:String x:Key="Text_Public_ShowLauncherWindow">Text_Public_ShowLauncherWindow</x:String>
<x:String x:Key="Text_Public_ShowLauncherWindow">顯示啟動器</x:String>
<x:String x:Key="Text_Public_Millisecond">毫秒</x:String>
<x:String x:Key="Text_Public_Second">秒</x:String>
<x:String x:Key="Text_Public_Minute">分鐘</x:String>
Expand All @@ -34,6 +34,7 @@
<x:String x:Key="Text_Public_Fixed">固定</x:String>
<x:String x:Key="Text_Public_Name">名稱</x:String>
<x:String x:Key="Text_Public_Author">作者</x:String>
<x:String x:Key="Text_Public_More">更多</x:String>
<x:String x:Key="Text_Log_Verbose">詳細</x:String>
<x:String x:Key="Text_Log_Debug">調試</x:String>
<x:String x:Key="Text_Log_Information">信息</x:String>
Expand Down Expand Up @@ -111,7 +112,6 @@
<x:String x:Key="Text_Settings_Personalise_DisplayLanguage">顯示語言</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect">雲母效果</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Enable">是否啟用雲母效果?</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_EnableTip">此效果僅限 Windows 11 系統開啟</x:String>
<x:String x:Key="Text_Settings_Personalise_MicaEffect_Opacity">透明度</x:String>
<x:String x:Key="Text_Settings_Personalise_Palette">調色板</x:String>
<x:String x:Key="Text_Settings_Personalise_Theme">主題</x:String>
Expand Down
3 changes: 3 additions & 0 deletions KitX Dashboard/Managers/ConfigManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ public ConfigManager Load()
LoadConfigFile<PluginsConfig>();
LoadConfigFile<MarketConfig>();
LoadConfigFile<AnnouncementConfig>();
LoadConfigFile<SecurityConfig>();
}, location, catchException: false);

return this;
Expand Down Expand Up @@ -179,4 +180,6 @@ private T GetConfig<T>() where T : ConfigBase
public MarketConfig MarketConfig => GetConfig<MarketConfig>();

public AnnouncementConfig AnnouncementConfig => GetConfig<AnnouncementConfig>();

public SecurityConfig SecurityConfig => GetConfig<SecurityConfig>();
}
6 changes: 5 additions & 1 deletion KitX Dashboard/Managers/FileWatcherManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,12 @@

namespace KitX.Dashboard.Managers;

public class FileWatcherManager
public class FileWatcherManager : ManagerBase
{
private static FileWatcherManager? _instance;

public static FileWatcherManager Instance => _instance ??= new();

private readonly Dictionary<string, FileWatcher> Watchers = [];

public FileWatcherManager()
Expand Down
2 changes: 1 addition & 1 deletion KitX Dashboard/Managers/KeyHookManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace KitX.Dashboard.Managers;

public class KeyHookManager
public class KeyHookManager : ManagerBase
{
private const int keysLimitation = 5;

Expand Down
7 changes: 7 additions & 0 deletions KitX Dashboard/Managers/ManagerBase.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
using KitX.Dashboard.Configuration;

namespace KitX.Dashboard.Managers;

public class ManagerBase : ConfigFetcher
{
}
Loading

0 comments on commit 2107c09

Please sign in to comment.