private void Init(IWindowManager windowManager, IThemeProvider themeProvider, IViewPerspective viewPerspective, DisplayMetrics displayMetrics, AndroidFontProvider fontProvider, IViewState viewState, IUiProvider uiProvider, ref AndroidMeasureKit measureContext, ref AndroidRenderContext renderContext, ref RefreshRenderContext refreshRenderContext) { var imageProvider = new AndroidImageProvider(displayMetrics); var visualLineage = new VisualLineage(); var lastMeasures = new Dictionary <IVisualElement, ValueSize>(); var layoutQueue = new LayoutQueue(); measureContext = new AndroidMeasureKit(windowManager, fontProvider, this, lastMeasures, themeProvider, displayMetrics, visualLineage, layoutQueue); var visualPositions = new Dictionary <IVisualElement, ValueCube>(); renderContext = new AndroidRenderContext(viewPerspective, fontProvider, viewState, this, visualPositions, lastMeasures, themeProvider, visualLineage, layoutQueue); refreshRenderContext = new RefreshRenderContext(viewPerspective, this, visualPositions, lastMeasures, themeProvider, visualLineage, layoutQueue); Container.ResolveTo <IImageProvider>(imageProvider); Container.ResolveTo(uiProvider); Container.ResolveTo(themeProvider); }
protected sealed override async void OnCreate(Bundle?savedInstanceState) { base.OnCreate(savedInstanceState); Platform.Init(this, savedInstanceState); var themeProvider = GetThemeProvider(); var displayMetrics = Resources?.DisplayMetrics ?? throw new NullReferenceException(); var fontProvider = new AndroidFontProvider(displayMetrics); var uiProvider = new AndroidUiProvider(this); var windowManager = WindowManager ?? throw new NullReferenceException( "WindowManager cannot be null"); var viewState = new AndroidViewState(displayMetrics, themeProvider); var resolver = GetDependencyContainer(); var imageProvider = GetImageProvider(displayMetrics); var renderKit = new AndroidRenderKit(new BasePerspective(), viewState, fontProvider, windowManager, uiProvider, themeProvider, displayMetrics, resolver, imageProvider); _view = await GetMainViewAsync(renderKit, uiProvider); var prov = new AndroidView(_view, Application.Context, renderKit, uiProvider); SetContentView(prov); }
public AndroidMeasureKit(IWindowManager windowManager, AndroidFontProvider fontProvider, IVisualSurrogateProvider surrogateProvider, Dictionary <IVisualElement, ValueSize> lastMeasurements, IThemeProvider themeProvider, DisplayMetrics displayMetrics, IVisualLineage visualLineage, ILayoutQueue layoutQueue) : base(surrogateProvider, lastMeasurements, themeProvider, visualLineage, layoutQueue) { _windowManager = windowManager; _fontProvider = fontProvider; _contextBounds = GetCOntextBounds(displayMetrics); }
public AndroidRenderContext(IViewPerspective perspective, AndroidFontProvider fontProvider, IViewState viewState, IVisualSurrogateProvider surrogateProvider, Dictionary <IVisualElement, ValueCube> renderPositions, Dictionary <IVisualElement, ValueSize> lastMeasurements, IThemeProvider themeProvider, IVisualLineage visualLineage, ILayoutQueue layoutQueue) : base(perspective, surrogateProvider, renderPositions, lastMeasurements, themeProvider, visualLineage, layoutQueue) { _fontProvider = fontProvider; _paint = new Paint(); ViewState = viewState; }
private static AndroidRenderKit BuildRenderKit(Context context, IWindowManager windowManager, IUiProvider uiProvider, IThemeProvider themeProvider, IResolver resolver) { var displayMetrics = context.Resources?.DisplayMetrics ?? throw new NullReferenceException(); var viewState = new AndroidViewState(displayMetrics, themeProvider); var fontProvider = new AndroidFontProvider(displayMetrics); return(new AndroidRenderKit(new BasePerspective(), viewState, fontProvider, windowManager, uiProvider, themeProvider, displayMetrics, resolver, new AndroidImageProvider(displayMetrics))); }
public AndroidRenderKit(IViewPerspective viewPerspective, IViewState viewState, AndroidFontProvider fontProvider, IWindowManager windowManager, IUiProvider uiProvider, IThemeProvider themeProvider, DisplayMetrics displayMetrics, IResolver container, IImageProvider imageProvider) : base(imageProvider, Serializer, new SvgPathBuilder(imageProvider, Serializer), container) { ViewState = viewState; DisplayMetrics = displayMetrics; Init(windowManager, themeProvider, viewPerspective, displayMetrics, fontProvider, viewState, uiProvider, ref _measureContext !, ref _renderContext !, ref _refreshRenderContext !); }