Browse Source

leverage GetRequiredService

pull/9898/head
Simon Cropp 3 years ago
parent
commit
fb37ab1e77
  1. 2
      samples/ControlCatalog.Desktop/Program.cs
  2. 2
      samples/ControlCatalog/Pages/TabControlPage.xaml.cs
  3. 2
      samples/ControlCatalog/ViewModels/CursorPageViewModel.cs
  4. 2
      samples/ControlCatalog/ViewModels/TransitioningContentControlPageViewModel.cs
  5. 3
      src/Avalonia.Base/Input/Cursor.cs
  6. 5
      src/Avalonia.Base/Media/FontManager.cs
  7. 5
      src/Avalonia.Base/Media/TextFormatting/TextShaper.cs
  8. 3
      src/Avalonia.Base/Rendering/RenderLoop.cs
  9. 8
      src/Avalonia.Base/Threading/DispatcherTimer.cs
  10. 13
      src/Avalonia.Controls/Platform/PlatformManager.cs
  11. 5
      src/Avalonia.DesignerSupport/DesignWindowLoader.cs
  12. 2
      src/Avalonia.Dialogs/Internal/ManagedFileChooserViewModel.cs
  13. 2
      src/Avalonia.OpenGL/Egl/EglInterface.cs
  14. 2
      src/Avalonia.X11/X11Framebuffer.cs
  15. 2
      src/Avalonia.X11/X11Platform.cs
  16. 2
      src/Markup/Avalonia.Markup.Xaml/Converters/BitmapTypeConverter.cs
  17. 2
      src/Markup/Avalonia.Markup.Xaml/Converters/IconTypeConverter.cs
  18. 2
      src/Skia/Avalonia.Skia/SKTypefaceCollectionCache.cs
  19. 6
      src/Skia/Avalonia.Skia/WriteableBitmapImpl.cs
  20. 2
      src/Windows/Avalonia.Direct2D1/Media/DWriteResourceFontLoader.cs
  21. 2
      src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs
  22. 2
      src/Windows/Avalonia.Win32.Interop/Wpf/Direct2DImageSurface.cs
  23. 2
      tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs
  24. 2
      tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs
  25. 2
      tests/Avalonia.Controls.UnitTests/FlyoutTests.cs
  26. 2
      tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs
  27. 2
      tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs
  28. 4
      tests/Avalonia.Controls.UnitTests/TextBoxTests.cs
  29. 9
      tests/Avalonia.Controls.UnitTests/TreeViewTests.cs
  30. 6
      tests/Avalonia.ReactiveUI.UnitTests/AutoSuspendHelperTest.cs
  31. 2
      tests/Avalonia.RenderTests/TestBase.cs
  32. 7
      tests/Avalonia.UnitTests/HarfBuzzFontManagerImpl.cs

2
samples/ControlCatalog.Desktop/Program.cs

@ -23,7 +23,7 @@ namespace ControlCatalog
private static void ConfigureAssetAssembly(AppBuilder builder)
{
AvaloniaLocator.CurrentMutable
.GetService<IAssetLoader>()
.GetRequiredService<IAssetLoader>()
.SetDefaultAssembly(typeof(App).Assembly);
}
}

2
samples/ControlCatalog/Pages/TabControlPage.xaml.cs

@ -51,7 +51,7 @@ namespace ControlCatalog.Pages
private static IBitmap LoadBitmap(string uri)
{
var assets = AvaloniaLocator.Current!.GetService<IAssetLoader>()!;
var assets = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
return new Bitmap(assets.Open(new Uri(uri)));
}
}

2
samples/ControlCatalog/ViewModels/CursorPageViewModel.cs

@ -18,7 +18,7 @@ namespace ControlCatalog.ViewModels
.Select(x => new StandardCursorModel(x))
.ToList();
var loader = AvaloniaLocator.Current!.GetService<IAssetLoader>()!;
var loader = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>()!;
var s = loader.Open(new Uri("avares://ControlCatalog/Assets/avalonia-32.png"));
var bitmap = new Bitmap(s);
CustomCursor = new Cursor(bitmap, new PixelPoint(16, 16));

2
samples/ControlCatalog/ViewModels/TransitioningContentControlPageViewModel.cs

@ -19,7 +19,7 @@ namespace ControlCatalog.ViewModels
{
public TransitioningContentControlPageViewModel()
{
var assetLoader = AvaloniaLocator.Current?.GetService<IAssetLoader>()!;
var assetLoader = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>()!;
var images = new string[]
{

3
src/Avalonia.Base/Input/Cursor.cs

@ -71,8 +71,7 @@ namespace Avalonia.Input
private static ICursorFactory GetCursorFactory()
{
return AvaloniaLocator.Current.GetService<ICursorFactory>() ??
throw new Exception("Could not create Cursor: ICursorFactory not registered.");
return AvaloniaLocator.Current.GetRequiredService<ICursorFactory>();
}
}
}

5
src/Avalonia.Base/Media/FontManager.cs

@ -47,10 +47,7 @@ namespace Avalonia.Media
return current;
}
var fontManagerImpl = AvaloniaLocator.Current.GetService<IFontManagerImpl>();
if (fontManagerImpl == null)
throw new InvalidOperationException("No font manager implementation was registered.");
var fontManagerImpl = AvaloniaLocator.Current.GetRequiredService<IFontManagerImpl>();
current = new FontManager(fontManagerImpl);

5
src/Avalonia.Base/Media/TextFormatting/TextShaper.cs

@ -29,10 +29,7 @@ namespace Avalonia.Media.TextFormatting
return current;
}
var textShaperImpl = AvaloniaLocator.Current.GetService<ITextShaperImpl>();
if (textShaperImpl == null)
throw new InvalidOperationException("No text shaper implementation was registered.");
var textShaperImpl = AvaloniaLocator.Current.GetRequiredService<ITextShaperImpl>();
current = new TextShaper(textShaperImpl);

3
src/Avalonia.Base/Rendering/RenderLoop.cs

@ -50,8 +50,7 @@ namespace Avalonia.Rendering
{
get
{
return _timer ??= AvaloniaLocator.Current.GetService<IRenderTimer>() ??
throw new InvalidOperationException("Cannot locate IRenderTimer.");
return _timer ??= AvaloniaLocator.Current.GetRequiredService<IRenderTimer>();
}
}

8
src/Avalonia.Base/Threading/DispatcherTimer.cs

@ -176,13 +176,7 @@ namespace Avalonia.Threading
{
if (!IsEnabled)
{
var threading = AvaloniaLocator.Current.GetService<IPlatformThreadingInterface>();
if (threading == null)
{
throw new Exception("Could not start timer: IPlatformThreadingInterface is not registered.");
}
var threading = AvaloniaLocator.Current.GetRequiredService<IPlatformThreadingInterface>();
_timer = threading.StartTimer(_priority, Interval, InternalTick);
}
}

13
src/Avalonia.Controls/Platform/PlatformManager.cs

@ -21,26 +21,19 @@ namespace Avalonia.Controls.Platform
}
public static ITrayIconImpl? CreateTrayIcon() =>
s_designerMode ? null : AvaloniaLocator.Current.GetService<IWindowingPlatform>()?.CreateTrayIcon();
s_designerMode ? null : AvaloniaLocator.Current.GetRequiredService<IWindowingPlatform>().CreateTrayIcon();
public static IWindowImpl CreateWindow()
{
var platform = AvaloniaLocator.Current.GetService<IWindowingPlatform>();
if (platform == null)
{
throw new Exception("Could not CreateWindow(): IWindowingPlatform is not registered.");
}
var platform = AvaloniaLocator.Current.GetRequiredService<IWindowingPlatform>();
return s_designerMode ? platform.CreateEmbeddableWindow() : platform.CreateWindow();
}
public static IWindowImpl CreateEmbeddableWindow()
{
var platform = AvaloniaLocator.Current.GetService<IWindowingPlatform>();
if (platform == null)
throw new Exception("Could not CreateEmbeddableWindow(): IWindowingPlatform is not registered.");
var platform = AvaloniaLocator.Current.GetRequiredService<IWindowingPlatform>();
return platform.CreateEmbeddableWindow();
}
}

5
src/Avalonia.DesignerSupport/DesignWindowLoader.cs

@ -18,12 +18,9 @@ namespace Avalonia.DesignerSupport
Control control;
using (PlatformManager.DesignerMode())
{
var loader = AvaloniaLocator.Current.GetService<AvaloniaXamlLoader.IRuntimeXamlLoader>();
var loader = AvaloniaLocator.Current.GetRequiredService<AvaloniaXamlLoader.IRuntimeXamlLoader>();
var stream = new MemoryStream(Encoding.UTF8.GetBytes(xaml));
if (loader == null)
throw new XamlLoadException("Runtime XAML loader is not registered");
Uri baseUri = null;
if (assemblyPath != null)
{

2
src/Avalonia.Dialogs/Internal/ManagedFileChooserViewModel.cs

@ -117,7 +117,7 @@ namespace Avalonia.Dialogs.Internal
?? new ManagedFileChooserSources();
var sub1 = AvaloniaLocator.Current
.GetService<IMountedVolumeInfoProvider>()
.GetRequiredService<IMountedVolumeInfoProvider>()
.Listen(ManagedFileChooserSources.MountedVolumes);
var sub2 = Observable.FromEventPattern(ManagedFileChooserSources.MountedVolumes,

2
src/Avalonia.OpenGL/Egl/EglInterface.cs

@ -35,7 +35,7 @@ namespace Avalonia.OpenGL.Egl
static Func<string, IntPtr> Load(string library)
{
var dyn = AvaloniaLocator.Current.GetService<IDynamicLibraryLoader>();
var dyn = AvaloniaLocator.Current.GetRequiredService<IDynamicLibraryLoader>();
var lib = dyn.LoadLibrary(library);
return (s) => dyn.GetProcAddress(lib, s, true);
}

2
src/Avalonia.X11/X11Framebuffer.cs

@ -25,7 +25,7 @@ namespace Avalonia.X11
RowBytes = width * 4;
Dpi = new Vector(96, 96) * factor;
Format = PixelFormat.Bgra8888;
_blob = AvaloniaLocator.Current.GetService<IRuntimePlatform>().AllocBlob(RowBytes * height);
_blob = AvaloniaLocator.Current.GetRequiredService<IRuntimePlatform>().AllocBlob(RowBytes * height);
Address = _blob.Address;
}

2
src/Avalonia.X11/X11Platform.cs

@ -105,7 +105,7 @@ namespace Avalonia.X11
var gl = AvaloniaLocator.Current.GetService<IPlatformGraphics>();
if (options.UseCompositor)
Compositor = new Compositor(AvaloniaLocator.Current.GetService<IRenderLoop>()!, gl);
Compositor = new Compositor(AvaloniaLocator.Current.GetRequiredService<IRenderLoop>(), gl);
else
RenderInterface = new(gl);

2
src/Markup/Avalonia.Markup.Xaml/Converters/BitmapTypeConverter.cs

@ -24,7 +24,7 @@ namespace Avalonia.Markup.Xaml.Converters
if(uri.IsAbsoluteUri && uri.IsFile)
return new Bitmap(uri.LocalPath);
var assets = AvaloniaLocator.Current.GetService<IAssetLoader>();
var assets = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
return new Bitmap(assets.Open(uri, context.GetContextBaseUri()));
}
}

2
src/Markup/Avalonia.Markup.Xaml/Converters/IconTypeConverter.cs

@ -40,7 +40,7 @@ namespace Avalonia.Markup.Xaml.Converters
if(uri.IsAbsoluteUri && uri.IsFile)
return new WindowIcon(uri.LocalPath);
var assets = AvaloniaLocator.Current.GetService<IAssetLoader>();
var assets = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
return new WindowIcon(assets.Open(uri, context.GetContextBaseUri()));
}
}

2
src/Skia/Avalonia.Skia/SKTypefaceCollectionCache.cs

@ -37,7 +37,7 @@ namespace Avalonia.Skia
var typeFaceCollection = new SKTypefaceCollection();
var assetLoader = AvaloniaLocator.Current.GetService<IAssetLoader>();
var assetLoader = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
foreach (var asset in fontAssets)
{

6
src/Skia/Avalonia.Skia/WriteableBitmapImpl.cs

@ -96,9 +96,9 @@ namespace Avalonia.Skia
SKColorType colorType = format.ToSkColorType();
SKAlphaType alphaType = alphaFormat.ToSkAlphaType();
var runtimePlatform = AvaloniaLocator.Current?.GetService<IRuntimePlatform>();
var runtimePlatform = AvaloniaLocator.Current.GetRequiredService<IRuntimePlatform>();
if (runtimePlatform != null)
{
_bitmap = new SKBitmap();

2
src/Windows/Avalonia.Direct2D1/Media/DWriteResourceFontLoader.cs

@ -22,7 +22,7 @@ namespace Avalonia.Direct2D1.Media
{
var factory1 = factory;
var assetLoader = AvaloniaLocator.Current.GetService<IAssetLoader>();
var assetLoader = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
foreach (var asset in fontAssets)
{

2
src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs

@ -409,7 +409,7 @@ namespace Avalonia.Direct2D1.Media
}
else
{
var platform = AvaloniaLocator.Current.GetService<IPlatformRenderInterface>();
var platform = AvaloniaLocator.Current.GetRequiredService<IPlatformRenderInterface>();
var dpi = new Vector(_deviceContext.DotsPerInch.Width, _deviceContext.DotsPerInch.Height);
var pixelSize = PixelSize.FromSizeWithDpi(size, dpi);
return (IDrawingContextLayerImpl)platform.CreateRenderTargetBitmap(pixelSize, dpi);

2
src/Windows/Avalonia.Win32.Interop/Wpf/Direct2DImageSurface.cs

@ -127,7 +127,7 @@ namespace Avalonia.Win32.Interop.Wpf
DeviceWindowHandle = GetDesktopWindow(),
PresentationInterval = PresentInterval.Default
};
s_dxDevice = s_dxDevice ?? AvaloniaLocator.Current.GetService<SharpDX.DXGI.Device>()
s_dxDevice = s_dxDevice ?? AvaloniaLocator.Current.GetRequiredService<SharpDX.DXGI.Device>()
.QueryInterface<SharpDX.Direct3D11.Device>();
s_d3DDevice = new DeviceEx(s_d3DContext, 0, DeviceType.Hardware, IntPtr.Zero, CreateFlags.HardwareVertexProcessing | CreateFlags.Multithreaded | CreateFlags.FpuPreserve, presentparams);

2
tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs

@ -97,7 +97,7 @@ namespace Avalonia.Base.UnitTests.Media.Fonts
{
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var assetLoader = AvaloniaLocator.Current.GetService<IAssetLoader>();
var assetLoader = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
var fontFamily = new FontFamily("resm:Avalonia.Base.UnitTests.Assets?assembly=Avalonia.Base.UnitTests#Noto Mono");

2
tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs

@ -596,7 +596,7 @@ namespace Avalonia.Controls.UnitTests
private static Window PreparedWindow(object content = null)
{
var renderer = new Mock<IRenderer>();
var platform = AvaloniaLocator.Current.GetService<IWindowingPlatform>();
var platform = AvaloniaLocator.Current.GetRequiredService<IWindowingPlatform>();
var windowImpl = Mock.Get(platform.CreateWindow());
windowImpl.Setup(x => x.CreateRenderer(It.IsAny<IRenderRoot>())).Returns(renderer.Object);

2
tests/Avalonia.Controls.UnitTests/FlyoutTests.cs

@ -570,7 +570,7 @@ namespace Avalonia.Controls.UnitTests
private static Window PreparedWindow(object content = null)
{
var renderer = new Mock<IRenderer>();
var platform = AvaloniaLocator.Current.GetService<IWindowingPlatform>();
var platform = AvaloniaLocator.Current.GetRequiredService<IWindowingPlatform>();
var windowImpl = Mock.Get(platform.CreateWindow());
windowImpl.Setup(x => x.CreateRenderer(It.IsAny<IRenderRoot>())).Returns(renderer.Object);

2
tests/Avalonia.Controls.UnitTests/MaskedTextBoxTests.cs

@ -827,7 +827,7 @@ namespace Avalonia.Controls.UnitTests
{
AvaloniaLocator.CurrentMutable.Bind<IClipboard>().ToSingleton<ClipboardStub>();
var clipboard = AvaloniaLocator.CurrentMutable.GetService<IClipboard>();
var clipboard = AvaloniaLocator.CurrentMutable.GetRequiredService<IClipboard>();
clipboard.SetTextAsync(textInput).GetAwaiter().GetResult();
RaiseKeyEvent(target, Key.V, KeyModifiers.Control);

2
tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs

@ -564,7 +564,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
using (CreateServices())
{
var renderer = new Mock<IRenderer>();
var platform = AvaloniaLocator.Current.GetService<IWindowingPlatform>();
var platform = AvaloniaLocator.Current.GetRequiredService<IWindowingPlatform>();
var windowImpl = Mock.Get(platform.CreateWindow());
windowImpl.Setup(x => x.CreateRenderer(It.IsAny<IRenderRoot>())).Returns(renderer.Object);

4
tests/Avalonia.Controls.UnitTests/TextBoxTests.cs

@ -767,7 +767,7 @@ namespace Avalonia.Controls.UnitTests
{
AvaloniaLocator.CurrentMutable.Bind<IClipboard>().ToSingleton<ClipboardStub>();
var clipboard = AvaloniaLocator.CurrentMutable.GetService<IClipboard>();
var clipboard = AvaloniaLocator.CurrentMutable.GetRequiredService<IClipboard>();
clipboard.SetTextAsync(textInput).GetAwaiter().GetResult();
RaiseKeyEvent(target, Key.V, KeyModifiers.Control);
@ -876,7 +876,7 @@ namespace Avalonia.Controls.UnitTests
AvaloniaLocator.CurrentMutable.Bind<IClipboard>().ToSingleton<ClipboardStub>();
var clipboard = AvaloniaLocator.CurrentMutable.GetService<IClipboard>();
var clipboard = AvaloniaLocator.CurrentMutable.GetRequiredService<IClipboard>();
clipboard.SetTextAsync(Environment.NewLine).GetAwaiter().GetResult();
RaiseKeyEvent(target, Key.V, KeyModifiers.Control);

9
tests/Avalonia.Controls.UnitTests/TreeViewTests.cs

@ -1248,7 +1248,7 @@ namespace Avalonia.Controls.UnitTests
using (Application())
{
var focus = FocusManager.Instance;
var navigation = AvaloniaLocator.Current.GetService<IKeyboardNavigationHandler>();
var navigation = AvaloniaLocator.Current.GetRequiredService<IKeyboardNavigationHandler>();
var data = CreateTestTreeData();
var target = new TreeView
@ -1293,7 +1293,6 @@ namespace Avalonia.Controls.UnitTests
using (Application())
{
var focus = FocusManager.Instance;
var navigation = AvaloniaLocator.Current.GetService<IKeyboardNavigationHandler>();
var data = CreateTestTreeData();
var selectedNode = new Node { Value = "Out of Tree Selected Item" };
@ -1353,7 +1352,7 @@ namespace Avalonia.Controls.UnitTests
var rootNode = tree[0];
var keymap = AvaloniaLocator.Current.GetService<PlatformHotkeyConfiguration>();
var keymap = AvaloniaLocator.Current.GetRequiredService<PlatformHotkeyConfiguration>();
var selectAllGesture = keymap.SelectAll.First();
var keyEvent = new KeyEventArgs
@ -1400,7 +1399,7 @@ namespace Avalonia.Controls.UnitTests
ClickContainer(fromContainer, KeyModifiers.None);
ClickContainer(toContainer, KeyModifiers.Shift);
var keymap = AvaloniaLocator.Current.GetService<PlatformHotkeyConfiguration>();
var keymap = AvaloniaLocator.Current.GetRequiredService<PlatformHotkeyConfiguration>();
var selectAllGesture = keymap.SelectAll.First();
var keyEvent = new KeyEventArgs
@ -1447,7 +1446,7 @@ namespace Avalonia.Controls.UnitTests
ClickContainer(fromContainer, KeyModifiers.None);
ClickContainer(toContainer, KeyModifiers.Shift);
var keymap = AvaloniaLocator.Current.GetService<PlatformHotkeyConfiguration>();
var keymap = AvaloniaLocator.Current.GetRequiredService<PlatformHotkeyConfiguration>();
var selectAllGesture = keymap.SelectAll.First();
var keyEvent = new KeyEventArgs

6
tests/Avalonia.ReactiveUI.UnitTests/AutoSuspendHelperTest.cs

@ -47,7 +47,7 @@ namespace Avalonia.ReactiveUI.UnitTests
using (var lifetime = new ClassicDesktopStyleApplicationLifetime())
{
var isLaunchingReceived = false;
var application = AvaloniaLocator.Current.GetService<Application>();
var application = AvaloniaLocator.Current.GetRequiredService<Application>();
application.ApplicationLifetime = lifetime;
// Initialize ReactiveUI Suspension as in real-world scenario.
@ -65,7 +65,7 @@ namespace Avalonia.ReactiveUI.UnitTests
using (UnitTestApplication.Start(TestServices.MockWindowingPlatform))
using (var lifetime = new ExoticApplicationLifetimeWithoutLifecycleEvents())
{
var application = AvaloniaLocator.Current.GetService<Application>();
var application = AvaloniaLocator.Current.GetRequiredService<Application>();
application.ApplicationLifetime = lifetime;
Assert.Throws<NotSupportedException>(() => new AutoSuspendHelper(application.ApplicationLifetime));
}
@ -88,7 +88,7 @@ namespace Avalonia.ReactiveUI.UnitTests
using (var lifetime = new ClassicDesktopStyleApplicationLifetime())
{
var shouldPersistReceived = false;
var application = AvaloniaLocator.Current.GetService<Application>();
var application = AvaloniaLocator.Current.GetRequiredService<Application>();
application.ApplicationLifetime = lifetime;
// Initialize ReactiveUI Suspension as in real-world scenario.

2
tests/Avalonia.RenderTests/TestBase.cs

@ -91,7 +91,7 @@ namespace Avalonia.Direct2D1.RenderTests
var immediatePath = Path.Combine(OutputPath, testName + ".immediate.out.png");
var deferredPath = Path.Combine(OutputPath, testName + ".deferred.out.png");
var compositedPath = Path.Combine(OutputPath, testName + ".composited.out.png");
var factory = AvaloniaLocator.Current.GetService<IPlatformRenderInterface>();
var factory = AvaloniaLocator.Current.GetRequiredService<IPlatformRenderInterface>();
var pixelSize = new PixelSize((int)target.Width, (int)target.Height);
var size = new Size(target.Width, target.Height);
var dpiVector = new Vector(dpi, dpi);

7
tests/Avalonia.UnitTests/HarfBuzzFontManagerImpl.cs

@ -76,13 +76,8 @@ namespace Avalonia.UnitTests
var asset = fontAssets.First();
var assetLoader = AvaloniaLocator.Current.GetService<IAssetLoader>();
var assetLoader = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
if (assetLoader == null)
{
throw new NotSupportedException("IAssetLoader is not registered.");
}
var stream = assetLoader.Open(asset);
return new HarfBuzzGlyphTypefaceImpl(stream);

Loading…
Cancel
Save