async void Initialize() { var ip = await ScannerConnection.GetLocalIp() ?? "ERROR"; Button offlineModeBtn = new Button { Text = "Offline mode", BackgroundColor = new Color(0.8f, 0.8f, 0.8f) }; offlineModeBtn.Clicked += OnOfflineModeClicked; var qrSize = 320; var barcode = new ZXingBarcodeImageView { WidthRequest = qrSize, HeightRequest = qrSize, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, BarcodeFormat = ZXing.BarcodeFormat.QR_CODE, BarcodeOptions = { Width = qrSize, Height = qrSize, }, BarcodeValue = ip, }; BackgroundColor = Color.White; var stack = new StackLayout { VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center, Children = { new Label { TextColor = Color.Black, HorizontalTextAlignment = TextAlignment.Center, Text = $"Open SmartHome for HoloLens companion app and\nscan this qr code in order to be connected ({ip}):" }, barcode, } }; Content = stack; if (Application.Current.Properties.ContainsKey(nameof(SpaceDto))) { stack.Children.Add(offlineModeBtn); } var connection = new ScannerConnection(); await connection.WaitForCompanion(); await Navigation.PushAsync(new MainPage(connection, false)); }
public MainPage(ScannerConnection connection, bool offlineMode) { this.connection = connection; this.serializer = new ProtobufNetworkSerializer(); NavigationPage.SetHasNavigationBar(this, false); var grid = new Grid(); grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(4, GridUnitType.Star) }); bulbsStack = new StackLayout(); grid.Children.Add(bulbsStack); urhoSurface = new UrhoSurface { BackgroundColor = Color.Black, VerticalOptions = LayoutOptions.FillAndExpand }; var stack = new StackLayout { VerticalOptions = LayoutOptions.FillAndExpand, Children = { urhoSurface } }; grid.Children.Add(stack); Grid.SetColumn(stack, 1); Content = grid; if (!offlineMode) { space = new SpaceDto(); connection.RegisterFor <SurfaceDto>(OnSurfaceReceived); connection.RegisterFor <BulbAddedDto>(OnBulbAdded); connection.RegisterFor <CurrentPositionDto>(OnCurrentPositionUpdated); Start(); } else { space = serializer.Deserialize <SpaceDto>( (byte[])Application.Current.Properties[nameof(SpaceDto)]); } }
async void Initialize() { var ip = await ScannerConnection.GetLocalIp() ?? "ERROR"; var qrSize = 320; var barcode = new ZXingBarcodeImageView { WidthRequest = qrSize, HeightRequest = qrSize, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, BarcodeFormat = ZXing.BarcodeFormat.QR_CODE, BarcodeOptions = { Width = qrSize, Height = qrSize, }, BarcodeValue = ip, }; BackgroundColor = Color.White; Content = new StackLayout { VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center, Children = { new Label { TextColor = Color.Black, HorizontalTextAlignment = TextAlignment.Center, Text = $"Open SmartHome for HoloLens companion app and\nscan this qr code in order to be connected ({ip}):" }, barcode } }; await ScannerConnection.WaitForCompanion(); await Navigation.PushAsync(new MainPage()); }
public MainPage() { NavigationPage.SetHasNavigationBar(this, false); Grid grid = new Grid(); grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(4, GridUnitType.Star) }); bulbsStack = new StackLayout(); grid.Children.Add(bulbsStack); urhoSurface = new UrhoSurface { BackgroundColor = Color.Black, VerticalOptions = LayoutOptions.FillAndExpand }; var stack = new StackLayout { VerticalOptions = LayoutOptions.FillAndExpand, Children = { urhoSurface } }; grid.Children.Add(stack); Grid.SetColumn(stack, 1); Content = grid; ScannerConnection.RegisterFor <SurfaceDto>(OnSurfaceReceived); ScannerConnection.RegisterFor <BulbAddedDto>(OnBulbAdded); ScannerConnection.RegisterFor <CurrentPositionDto>(OnCurrentPositionUpdated); }
public void SetConnection(ScannerConnection connection) => this.connection = connection;