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;
 }
Example #5
0
        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 !);
        }