public AndroidView(IVisualElement view, Context context, AndroidRenderKit renderKit, IUiProvider uiProvider) : base(context) { _loopHandler = new Handler(Looper.MainLooper); _measured = Size.Empty; _targetRect = ValueRectangle.Empty; _view = view; _surrogates = new AndroidSurrogateProvider(renderKit, uiProvider, this); RenderKit = renderKit; _viewState = renderKit.ViewState; ZoomLevel = renderKit.DisplayMetrics.ScaledDensity; //System.Diagnostics.Debug.WriteLine("Built android view with display w/h: " + // renderKit.DisplayMetrics.WidthPixels + ", " + // renderKit.DisplayMetrics.HeightPixels + " dpi: " + // renderKit.DisplayMetrics.ScaledDensity); _paintView = new AndroidPaintView(context, renderKit, view); AddView(_paintView); var inputHandler = new BaseInputHandler(RenderKit.RenderContext); _inputContext = new AndroidInputContext(this, context, inputHandler, _viewState); renderKit.Container.ResolveTo(this); }
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); }
public BaseObservableCommand(Func <Task> execute, IUiProvider uiThread) : this(execute, _ => true, uiThread) { _uiProvider = uiThread; _executeAsync = execute; _canExecute = CanIExecute; }
public AndroidSurrogateProvider(IRenderKit renderKit, IUiProvider uiProvider, ViewGroup viewGroup) { _uiProvider = uiProvider; _viewGroup = viewGroup; renderKit.RegisterSurrogate <HtmlPanel>(GetHtmlPanelSurrogate); }
public BaseObservableCommand(Func <Task> execute, Predicate <Object> canExecute, IUiProvider ui) { _description = String.Empty; _executeAsync = execute; _uiProvider = ui; _canExecute = canExecute ?? CanIExecute; _canExecuteVal = true; }
//TextView textMessage; //protected override void OnCreate(Bundle savedInstanceState) //{ // base.OnCreate(savedInstanceState); // Xamarin.Essentials.Platform.Init(this, savedInstanceState); // var vm = new TestVm(); // vm.Name = "hello world"; // var bob = new TestView(); // bob.SetBoundValue(vm); // var v = new AndroidView(bob, this, WindowManager ?? throw new NullReferenceException()); // //var wv = new WebView(this); // SetContentView(v); // //SetContentView(Resource.Layout.activity_main); // textMessage = FindViewById<TextView>(Resource.Id.message); // //BottomNavigationView navigation = FindViewById<BottomNavigationView>(Resource.Id.navigation); // //navigation.SetOnNavigationItemSelectedListener(this); //} protected override Task <IVisualElement> GetMainViewAsync(IRenderKit renderKit, IUiProvider uiProvider) { var vm = new TestVm(); vm.Name = "hello world"; IView view = new TestView(renderKit.VisualBootstrapper, renderKit.ImageProvider); view.DataContext = vm; return(Task.FromResult <IVisualElement>(view)); }
public BaseObservableCommand(Action execute, IObjectManipulator typeManipulator, INotifyPropertyChanged viewModel, String propertyName, IUiProvider uiProvider) : this(execute, _ => typeManipulator.GetPropertyValue <Boolean>(viewModel, propertyName), uiProvider) { _propertyName = propertyName; viewModel.PropertyChanged += OnViewModelPropertyChanged; }
public HtmlSurrogate(HtmlPanel htmlPanel, Context?context, ViewGroup viewGroup, IUiProvider uiProvider) : base(context) { _htmlPanel = htmlPanel; _viewGroup = viewGroup; _uiProvider = uiProvider; _htmlPanel.PropertyChanged += OnControlPropertyChanged; _hasPendingContent = htmlPanel.Markup != null || htmlPanel.Uri != null; }
// ReSharper disable once UnusedMember.Global public AndroidView(IVisualElement view, Context context, IWindowManager windowManager, IUiProvider uiProvider, IThemeProvider?themeProvider, IResolver?resolver) : this(view, context, BuildRenderKit(context, windowManager, uiProvider, themeProvider ?? BaselineThemeProvider.Instance, resolver ?? new BaseResolver()), uiProvider) { }
public HtmlSurrogate2(Context?context, HtmlPanel htmlPanel, WebView nativeView, IUiProvider uiProvider, ViewGroup viewGroup) : base(context, htmlPanel, nativeView, viewGroup) { _uiProvider = uiProvider; _htmlPanel = htmlPanel; _nativeView = nativeView; htmlPanel.PropertyChanged += OnControlPropertyChanged; _hasPendingContent = htmlPanel.Markup != null || htmlPanel.Uri != null; }
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 !); }
public BaseObservableCommand(Action execute, IUiProvider uiThread) : this(execute, _ => true, uiThread) { }
protected abstract Task <IVisualElement> GetMainViewAsync(IRenderKit renderKit, // ReSharper disable once UnusedParameter.Global IUiProvider uiProvider);