Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2d478be0ad | ||
|
|
0096199334 | ||
|
|
01f28cf044 | ||
|
|
37939b84ac |
+12
-11
@@ -1,19 +1,20 @@
|
|||||||
<Application x:Class="ClaudeCheckerWindows.App"
|
<Application x:Class="ClaudeCheckerWindows.App"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:po="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"
|
||||||
ShutdownMode="OnExplicitShutdown">
|
ShutdownMode="OnExplicitShutdown">
|
||||||
<Application.Resources>
|
<Application.Resources>
|
||||||
<SolidColorBrush x:Key="BackgroundBrush" Color="#F3F3F3"/>
|
<SolidColorBrush x:Key="BackgroundBrush" Color="#F3F3F3" po:Freeze="False"/>
|
||||||
<SolidColorBrush x:Key="CardBrush" Color="#FFFFFF"/>
|
<SolidColorBrush x:Key="CardBrush" Color="#FFFFFF" po:Freeze="False"/>
|
||||||
<SolidColorBrush x:Key="AccentBrush" Color="#F97316"/>
|
<SolidColorBrush x:Key="AccentBrush" Color="#F97316" po:Freeze="False"/>
|
||||||
<SolidColorBrush x:Key="TextBrush" Color="#1C1C1C"/>
|
<SolidColorBrush x:Key="TextBrush" Color="#1C1C1C" po:Freeze="False"/>
|
||||||
<SolidColorBrush x:Key="SecondaryBrush" Color="#6E6E6E"/>
|
<SolidColorBrush x:Key="SecondaryBrush" Color="#6E6E6E" po:Freeze="False"/>
|
||||||
<SolidColorBrush x:Key="BorderBrush" Color="#E0E0E0"/>
|
<SolidColorBrush x:Key="BorderBrush" Color="#E0E0E0" po:Freeze="False"/>
|
||||||
<SolidColorBrush x:Key="BlueBrush" Color="#0078D4"/>
|
<SolidColorBrush x:Key="BlueBrush" Color="#0078D4" po:Freeze="False"/>
|
||||||
<SolidColorBrush x:Key="ButtonBrush" Color="#FFFFFF"/>
|
<SolidColorBrush x:Key="ButtonBrush" Color="#FFFFFF" po:Freeze="False"/>
|
||||||
<SolidColorBrush x:Key="SurfaceBrush" Color="#FAFAFA"/>
|
<SolidColorBrush x:Key="SurfaceBrush" Color="#FAFAFA" po:Freeze="False"/>
|
||||||
<SolidColorBrush x:Key="BannerBgBrush" Color="#E8F2FB"/>
|
<SolidColorBrush x:Key="BannerBgBrush" Color="#E8F2FB" po:Freeze="False"/>
|
||||||
<SolidColorBrush x:Key="BannerBorderBrush" Color="#B3D6F5"/>
|
<SolidColorBrush x:Key="BannerBorderBrush" Color="#B3D6F5" po:Freeze="False"/>
|
||||||
|
|
||||||
<Style x:Key="HeaderText" TargetType="TextBlock">
|
<Style x:Key="HeaderText" TargetType="TextBlock">
|
||||||
<Setter Property="FontSize" Value="10"/>
|
<Setter Property="FontSize" Value="10"/>
|
||||||
|
|||||||
@@ -17,6 +17,19 @@ public partial class App : Application
|
|||||||
|
|
||||||
protected override void OnStartup(StartupEventArgs e)
|
protected override void OnStartup(StartupEventArgs e)
|
||||||
{
|
{
|
||||||
|
var logPath = System.IO.Path.Combine(
|
||||||
|
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
|
||||||
|
"ClaudeChecker", "startup_crash.txt");
|
||||||
|
|
||||||
|
AppDomain.CurrentDomain.UnhandledException += (_, ex) =>
|
||||||
|
System.IO.File.WriteAllText(logPath, ex.ExceptionObject?.ToString() ?? "unknown");
|
||||||
|
|
||||||
|
DispatcherUnhandledException += (_, ex) =>
|
||||||
|
{
|
||||||
|
System.IO.File.WriteAllText(logPath, ex.Exception?.ToString() ?? "unknown");
|
||||||
|
ex.Handled = false;
|
||||||
|
};
|
||||||
|
|
||||||
base.OnStartup(e);
|
base.OnStartup(e);
|
||||||
ThemeManager.Initialize();
|
ThemeManager.Initialize();
|
||||||
SetupTray();
|
SetupTray();
|
||||||
|
|||||||
+8
-10
@@ -2,6 +2,7 @@ using Microsoft.Win32;
|
|||||||
using System;
|
using System;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
|
using System.Windows.Threading;
|
||||||
|
|
||||||
namespace ClaudeCheckerWindows;
|
namespace ClaudeCheckerWindows;
|
||||||
|
|
||||||
@@ -14,20 +15,17 @@ public static class ThemeManager
|
|||||||
{
|
{
|
||||||
IsDark = ReadIsDark();
|
IsDark = ReadIsDark();
|
||||||
Apply();
|
Apply();
|
||||||
SystemEvents.UserPreferenceChanged += OnPreferenceChanged;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void OnPreferenceChanged(object sender, UserPreferenceChangedEventArgs e)
|
var timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(5) };
|
||||||
{
|
timer.Tick += (_, _) =>
|
||||||
if (e.Category != UserPreferenceCategory.General) return;
|
|
||||||
var nowDark = ReadIsDark();
|
|
||||||
if (nowDark == IsDark) return;
|
|
||||||
IsDark = nowDark;
|
|
||||||
Application.Current.Dispatcher.Invoke(() =>
|
|
||||||
{
|
{
|
||||||
|
var nowDark = ReadIsDark();
|
||||||
|
if (nowDark == IsDark) return;
|
||||||
|
IsDark = nowDark;
|
||||||
Apply();
|
Apply();
|
||||||
ThemeChanged?.Invoke();
|
ThemeChanged?.Invoke();
|
||||||
});
|
};
|
||||||
|
timer.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool ReadIsDark()
|
private static bool ReadIsDark()
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Reflection;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.IO.Compression;
|
using System.IO.Compression;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
|
|||||||
Reference in New Issue
Block a user