Verify Views files against decompiled, extract embedded types
Fixed files: - SkiaImageButton.cs: Added SVG support with multi-path search - SkiaNavigationPage.cs: Added LinuxApplication.IsGtkMode check - SkiaRefreshView.cs: Added ICommand support (Command, CommandParameter) - SkiaTemplatedView.cs: Added missing using statements Extracted embedded types to separate files (matching decompiled pattern): - From SkiaMenuBar.cs: MenuBarItem, MenuItem, SkiaMenuFlyout, MenuItemClickedEventArgs - From SkiaNavigationPage.cs: NavigationEventArgs - From SkiaTabbedPage.cs: TabItem - From SkiaVisualStateManager.cs: SkiaVisualStateGroupList, SkiaVisualStateGroup, SkiaVisualState, SkiaVisualStateSetter - From SkiaSwipeView.cs: SwipeItem, SwipeStartedEventArgs, SwipeEndedEventArgs - From SkiaFlyoutPage.cs: FlyoutLayoutBehavior (already separate) - From SkiaIndicatorView.cs: IndicatorShape (already separate) - From SkiaBorder.cs: SkiaFrame - From SkiaCarouselView.cs: PositionChangedEventArgs - From SkiaCollectionView.cs: SkiaSelectionMode, ItemsLayoutOrientation - From SkiaContentPresenter.cs: LayoutAlignment Verified matching decompiled: - SkiaContextMenu.cs, SkiaFlexLayout.cs, SkiaGraphicsView.cs Build: 0 errors 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -388,74 +388,3 @@ public class AtSpi2AccessibilityService : IAccessibilityService, IDisposable
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Factory for creating accessibility service instances.
|
||||
/// </summary>
|
||||
public static class AccessibilityServiceFactory
|
||||
{
|
||||
private static IAccessibilityService? _instance;
|
||||
private static readonly object _lock = new();
|
||||
|
||||
/// <summary>
|
||||
/// Gets the singleton accessibility service instance.
|
||||
/// </summary>
|
||||
public static IAccessibilityService Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
lock (_lock)
|
||||
{
|
||||
_instance ??= CreateService();
|
||||
}
|
||||
}
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
private static IAccessibilityService CreateService()
|
||||
{
|
||||
try
|
||||
{
|
||||
var service = new AtSpi2AccessibilityService();
|
||||
service.Initialize();
|
||||
return service;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"AccessibilityServiceFactory: Failed to create AT-SPI2 service - {ex.Message}");
|
||||
return new NullAccessibilityService();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resets the singleton instance.
|
||||
/// </summary>
|
||||
public static void Reset()
|
||||
{
|
||||
lock (_lock)
|
||||
{
|
||||
_instance?.Shutdown();
|
||||
_instance = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Null implementation of accessibility service.
|
||||
/// </summary>
|
||||
public class NullAccessibilityService : IAccessibilityService
|
||||
{
|
||||
public bool IsEnabled => false;
|
||||
|
||||
public void Initialize() { }
|
||||
public void Register(IAccessible accessible) { }
|
||||
public void Unregister(IAccessible accessible) { }
|
||||
public void NotifyFocusChanged(IAccessible? accessible) { }
|
||||
public void NotifyPropertyChanged(IAccessible accessible, AccessibleProperty property) { }
|
||||
public void NotifyStateChanged(IAccessible accessible, AccessibleState state, bool value) { }
|
||||
public void Announce(string text, AnnouncementPriority priority = AnnouncementPriority.Polite) { }
|
||||
public void Shutdown() { }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user