public override async Task OnNavigateToAsync() { HwndSource hwndSource = (HwndSource)PresentationSource.FromVisual(Application.Current.MainWindow); IPlayerNotificationProvider playerNotificationProvider = new PlayerNotificationProvider(hwndSource); IDeviceListener uPnPDeviceListener = new UPnPDeviceListener(new NetworkInfoProvider(), this.transportFactory); IDeviceDiscovery uPnPDeviceDiscovery = new UPnPDeviceDiscovery(this.transportFactory, uPnPDeviceListener); IDeviceDiscovery tvDiscovery = new TvDiscovery(uPnPDeviceDiscovery, new TcpWebTransport(TimeSpan.FromSeconds(5))); this.deviceController = new DeviceController(tvDiscovery, this.devicePairing, playerNotificationProvider, new DeviceSettingProvider(), base.Controller); this.deviceController.StartDiscovery(); base.IsDataLoaded = false; await this.CheckForUpdates(); bool previousDeviceAsync = await this.deviceController.ConnectToPreviousDeviceAsync(); base.IsDataLoaded = true; if (!previousDeviceAsync) { base.Controller.Navigate(new WelcomeViewModel(this.deviceController), true); } else { base.Controller.Push(new WelcomeViewModel(this.deviceController)); base.Controller.Navigate(new MainViewModel(this.deviceController), true); } }
private async Task ConnectToDevice(object param) { Logger.Instance.LogMessageFormat("[SmartView2][DeviceListViewModel]ConnectToDevice started... ", new object[0]); base.IsDataLoaded = false; try { try { DeviceInfo deviceInfo = param as DeviceInfo; if (deviceInfo == null) { return; } else if (!TvDiscovery.IsTv2014(deviceInfo)) { Logger.Instance.LogMessageFormat("[SmartView2][DeviceListViewModel]TV is not 14 year. ", new object[0]); PopupWrapper popupWrapper = this.messagePopup; string[] mAPPSIDUNABLECONNECTTV = new string[] { ResourcesModel.Instanse.MAPP_SID_UNABLE_CONNECT_TV, ResourcesModel.Instanse.MAPP_SID_SMART_VIEW_NOT_SUPPORT_YOUR_TV }; await popupWrapper.ShowDialogAsync(mAPPSIDUNABLECONNECTTV); return; } else if (await this.deviceController.TryToConnect(deviceInfo.DeviceAddress.Host)) { await base.Controller.Navigate(new MainViewModel(this.deviceController), false); } else { Logger.Instance.LogMessageFormat("[SmartView2][DeviceListViewModel]Call deviceController Connect . ", new object[0]); switch (await this.deviceController.Connect(deviceInfo)) { case DeviceController.ConnectResult.PinPageAlreadyShown: { Logger.Instance.LogMessageFormat("[SmartView2][DeviceListViewModel]Another device is connecting. ", new object[0]); PopupWrapper popupWrapper1 = this.messagePopup; string[] cOMTVSIDTRYAGAIN = new string[] { ResourcesModel.Instanse.COM_TV_SID_TRY_AGAIN, ResourcesModel.Instanse.MAPP_SID_ANOTHER_DEVICE_CURRENTLY_PAIR_TV }; await popupWrapper1.ShowDialogAsync(cOMTVSIDTRYAGAIN); await base.Controller.GoBack(); return; } case DeviceController.ConnectResult.SocketException: { this.deviceController.RefreshDiscovery(); Logger.Instance.LogMessageFormat("[SmartView2][DeviceListViewModel]TV is not ready. ", new object[0]); PopupWrapper popupWrapper2 = this.messagePopup; string[] strArrays = new string[] { ResourcesModel.Instanse.COM_TV_SID_TRY_AGAIN, ResourcesModel.Instanse.MAPP_SID_TV_NOT_READY_CONNECTION_TRY_AGAIN }; await popupWrapper2.ShowDialogAsync(strArrays); await base.Controller.GoBack(); return; } case DeviceController.ConnectResult.OtherException: { Logger.Instance.LogMessageFormat("[SmartView2][DeviceListViewModel]something went wrong. ", new object[0]); PopupWrapper popupWrapper3 = this.messagePopup; string[] cOMTVSIDTRYAGAIN1 = new string[] { ResourcesModel.Instanse.COM_TV_SID_TRY_AGAIN, ResourcesModel.Instanse.MAPP_SID_SOMETHING_WENT_WRONG }; await popupWrapper3.ShowDialogAsync(cOMTVSIDTRYAGAIN1); await base.Controller.GoBack(); return; } default: { object obj = await this.pinPopup.ShowDialogAsync(deviceInfo); if (obj == null) { break; } if (!(obj is Exception)) { if (obj is bool?) { bool?nullable = (bool?)(obj as bool?); if ((!nullable.GetValueOrDefault() ? false : nullable.HasValue)) { await base.Controller.Navigate(new MainViewModel(this.deviceController), false); break; } } await base.Controller.GoBack(); break; } else { Exception exception = obj as Exception; Logger.Instance.LogMessageFormat("[SmartView2][DeviceListViewModel]Error occured while connectiong to tv. ", new object[0]); Logger instance = Logger.Instance; instance.LogMessageFormat("[SmartView2][DeviceListViewModel]Error message: {0} ", new object[] { exception.Message }); Logger logger = Logger.Instance; logger.LogMessageFormat("[SmartView2][DeviceListViewModel]Error message stack trace: {0} ", new object[] { exception.StackTrace }); PopupWrapper popupWrapper4 = this.messagePopup; string[] mAPPSIDSMARTVIEW20 = new string[] { ResourcesModel.Instanse.MAPP_SID_SMART_VIEW_2_0, ResourcesModel.Instanse.MAPP_SID_ERROR_OCCURED_WHILE_CONNECTING_TO_TV }; popupWrapper4.Show(mAPPSIDSMARTVIEW20); return; } } } } } catch (Exception exception2) { Exception exception1 = exception2; Logger.Instance.LogMessageFormat("[SmartView2][DeviceListViewModel]Catch unknown error.", new object[0]); Logger instance1 = Logger.Instance; instance1.LogMessageFormat("[SmartView2][DeviceListViewModel]Error message: {0} ", new object[] { exception1.Message }); Logger logger1 = Logger.Instance; logger1.LogMessageFormat("[SmartView2][DeviceListViewModel]Error message stack trace: {0} ", new object[] { exception1.StackTrace }); PopupWrapper popupWrapper5 = this.messagePopup; string[] mAPPSIDSMARTVIEW201 = new string[] { ResourcesModel.Instanse.MAPP_SID_SMART_VIEW_2_0, ResourcesModel.Instanse.MAPP_SID_SOMETHING_WENT_WRONG }; popupWrapper5.Show(mAPPSIDSMARTVIEW201); } } finally { base.IsDataLoaded = true; } }
private async void OnChangeDeviceCommand(object obj) { DeviceInfo deviceInfo = obj as DeviceInfo; if (deviceInfo != null) { if (TvDiscovery.IsTv2014(deviceInfo)) { base.IsDataLoaded = false; await this.innerPageController.Dispose(); if (await this.deviceController.TryToConnect(deviceInfo.DeviceAddress.Host)) { await this.pageController.Navigate(new MainViewModel(this.deviceController), true); } else if (await this.deviceController.Reconnect(deviceInfo) == DeviceController.ConnectResult.Ok) { object obj1 = await this.pinPopup.ShowDialogAsync(deviceInfo); if (obj1 == null) { await this.pageController.GoBack(typeof(WelcomeViewModel)); } else { if (obj1 is Exception) { PopupWrapper popupWrapper = this.messagePopup; string[] mAPPSIDSMARTVIEW20 = new string[] { ResourcesModel.Instanse.MAPP_SID_SMART_VIEW_2_0, ResourcesModel.Instanse.MAPP_SID_ERROR_OCCURED_WHILE_CONNECTING_TO_TV }; await popupWrapper.ShowDialogAsync(mAPPSIDSMARTVIEW20); await this.pageController.GoBack(typeof(WelcomeViewModel)); } if (obj1 is bool?) { bool? nullable = (bool?)(obj1 as bool?); if ((!nullable.GetValueOrDefault() ? true : !nullable.HasValue)) { goto Label1; } await this.pageController.Navigate(new MainViewModel(this.deviceController), true); goto Label0; } Label1: await this.pageController.GoBack(typeof(WelcomeViewModel)); } } else { PopupWrapper popupWrapper1 = this.messagePopup; string[] strArrays = new string[] { ResourcesModel.Instanse.MAPP_SID_SMART_VIEW_2_0, ResourcesModel.Instanse.MAPP_SID_ERROR_OCCURED_WHILE_CONNECTING_TO_TV }; await popupWrapper1.ShowDialogAsync(strArrays); await this.pageController.GoBack(typeof(WelcomeViewModel)); } Label0: base.IsDataLoaded = true; base.Controller.ClosePopup(); } else { PopupWrapper popupWrapper2 = this.messagePopup; string[] mAPPSIDUNABLECONNECTTV = new string[] { ResourcesModel.Instanse.MAPP_SID_UNABLE_CONNECT_TV, ResourcesModel.Instanse.MAPP_SID_SMART_VIEW_NOT_SUPPORT_YOUR_TV }; await popupWrapper2.ShowDialogAsync(mAPPSIDUNABLECONNECTTV); } } }