StartPage.xaml.cs CampusAppWP8::Pages::StartPage CampusAppWP8::Pages //----------------------------------------------------------------------- //<copyrightfile="StartPage.xaml.cs"company="BTU/IIT"> //TheMITLicense(MIT).Copyright(c)2013BTU/IIT. //</copyright> //<author>Stubbfel</author> //<date>15.10.2013</date> //<summary>Implementsthestartpage.xamlclass</summary> //----------------------------------------------------------------------- namespaceCampusAppWP8.Pages { usingSystem; usingSystem.Runtime.InteropServices.WindowsRuntime; usingSystem.Threading; usingSystem.Windows; usingSystem.Windows.Controls; usingSystem.Windows.Navigation; usingCampusAppWP8.Feed.Utility; usingCampusAppWP8.File.Places; usingCampusAppWP8.Model.Setting; usingCampusAppWP8.Resources; usingCampusAppWP8.Utility; usingCampusAppWP8.Utility.Lui.MessageBoxes; usingCampusAppWP8.Utility.Lui.Tiles; usingCampusAppWP8.Utility.NDEF; usingMicrosoft.Phone.Controls; usingMicrosoft.Phone.Shell; usingWindows.Networking.Proximity; publicpartialclassStartPage:PhoneApplicationPage { #regionMember privatereadonlyProximityDevicedevice=ProximityDevice.GetDefault(); privateCourseFeedinitCourseList; privatePageOrientationprevOrientation; privatelongndefId; #endregion #regionConstructor publicStartPage() { this.InitializeComponent(); ApplicationBarMenuItemmenuItem1=ApplicationBar.MenuItems[0]asApplicationBarMenuItem; ApplicationBarMenuItemmenuItem2=ApplicationBar.MenuItems[1]asApplicationBarMenuItem; ApplicationBarMenuItemmenuItem3=ApplicationBar.MenuItems[2]asApplicationBarMenuItem; ApplicationBarMenuItemmenuItem4=ApplicationBar.MenuItems[3]asApplicationBarMenuItem; ApplicationBarMenuItemmenuItem5=ApplicationBar.MenuItems[4]asApplicationBarMenuItem; if(menuItem1!=null) { menuItem1.Text=AppResources.Setting_UserProfilAppBarTitle; } if(menuItem2!=null) { menuItem2.Text=AppResources.Setting_ApplAppBarTitle; } if(menuItem3!=null) { menuItem3.Text=AppResources.App_ScanQR; } if(menuItem4!=null) { menuItem4.Text=AppResources.App_ScanNfc; } if(menuItem5!=null) { menuItem5.Text=AppResources.Setting_ImpressumTitle; } else { ApplicationBar.MenuItems.RemoveAt(ApplicationBar.MenuItems.Count-1); ApplicationBar.MenuItems.RemoveAt(ApplicationBar.MenuItems.Count-1); } if(!Settings.AppSetting.InitApp) { this.InitPlaceFile(); this.initCourseList=newCourseFeed(); this.initCourseList.OnLoaded+=newCourseFeed.OnIO(this.StoreCourseFeed); this.initCourseList.LoadData(); this.ShowOptIns(); Settings.AppSetting.InitApp=true; intappDeploy; boolparseResult=int.TryParse(Constants.DeploymentNumber,outappDeploy); if(parseResult) { Settings.AppSetting.DeploymentNumber=appDeploy; } } } #endregion #regionMethod #regionprotected protectedoverridevoidOnNavigatedTo(NavigationEventArgse) { base.OnNavigatedTo(e); if(this.Orientation.Equals(PageOrientation.PortraitUp)||this.Orientation.Equals(PageOrientation.PortraitDown)||this.Orientation.Equals(PageOrientation.Portrait)) { this.prevOrientation=PageOrientation.Portrait; } else { this.prevOrientation=PageOrientation.Landscape; } this.ndefId=this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF,this.NDEFHandler); } protectedoverridevoidOnNavigatedFrom(NavigationEventArgse) { this.device.StopSubscribingForMessage(this.ndefId); base.OnNavigatedFrom(e); } #endregion #regionprivate privatevoidInitPlaceFile() { PlacesFilefile=newPlacesFile(); file.FallBackLoad(); } privatevoidStoreCourseFeed() { this.initCourseList.SaveData(); } privatevoidPhoneApplicationPage_OrientationChanged(objectsender,OrientationChangedEventArgse) { //Switchtheplacementofthebuttonsbasedonanorientationchange. if(this.Orientation.Equals(PageOrientation.LandscapeLeft)) { this.ContentPanel.Margin=newThickness(24,-24,76,0); this.AppTitle.Margin=newThickness(12,17,0,28); if(!this.prevOrientation.Equals(PageOrientation.Landscape)) { this.MoveGridToLandscape(); this.prevOrientation=PageOrientation.Landscape; } } elseif(this.Orientation.Equals(PageOrientation.LandscapeRight)) { this.ContentPanel.Margin=newThickness(76,-24,24,0); this.AppTitle.Margin=newThickness(64,17,0,28); if(!this.prevOrientation.Equals(PageOrientation.Landscape)) { this.MoveGridToLandscape(); this.prevOrientation=PageOrientation.Landscape; } } else { this.ContentPanel.Margin=newThickness(12,0,12,12); this.AppTitle.Margin=newThickness(12,17,0,28); if(!this.prevOrientation.Equals(PageOrientation.Portrait)) { this.MoveToPortrait(); this.prevOrientation=PageOrientation.Portrait; } } } privatevoidMoveToPortrait() { if(!this.Row0.Children.Contains(this.MailAppButton) &&!this.Row1.Children.Contains(this.OpenHoursAppButton) &&!this.Row2.Children.Contains(this.LinkAppButton)) { return; } this.Row0.Children.Remove(this.MailAppButton); this.Row3.Children.Add(this.MailAppButton); this.MailAppButton.SetValue(Grid.ColumnProperty,0); this.Row1.Children.Remove(this.OpenHoursAppButton); this.Row3.Children.Add(this.OpenHoursAppButton); this.OpenHoursAppButton.SetValue(Grid.ColumnProperty,1); this.Row2.Children.Remove(this.LinkAppButton); this.Row3.Children.Add(this.LinkAppButton); this.LinkAppButton.SetValue(Grid.ColumnProperty,2); } privatevoidMoveGridToLandscape() { if(!this.Row3.Children.Contains(this.MailAppButton) &&!this.Row3.Children.Contains(this.OpenHoursAppButton) &&!this.Row3.Children.Contains(this.LinkAppButton)) { return; } this.Row3.Children.Remove(this.MailAppButton); this.Row0.Children.Add(this.MailAppButton); this.MailAppButton.SetValue(Grid.ColumnProperty,3); this.Row3.Children.Remove(this.OpenHoursAppButton); this.Row1.Children.Add(this.OpenHoursAppButton); this.OpenHoursAppButton.SetValue(Grid.ColumnProperty,3); this.Row3.Children.Remove(this.LinkAppButton); this.Row2.Children.Add(this.LinkAppButton); this.LinkAppButton.SetValue(Grid.ColumnProperty,3); } privatevoidApplicationBarMenuItem_Click(objectsender,EventArgse) { Uriurl=newUri(Constants.PathSetting_User,UriKind.Relative); NavigationService.Navigate(url); } privatevoidApplicationBarMenuItem2_Click(objectsender,EventArgse) { Uriurl=newUri(Constants.PathSetting_App,UriKind.Relative); NavigationService.Navigate(url); } privatevoidApplicationBarMenuItem4_Click(objectsender,EventArgse) { MessageBoxes.ShowMainModelInfoMessageBox(AppResources.ScarNfc_Search); //this.device.StopSubscribingForMessage(this.ndefId); //this.ndefId=this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF,this.NDEFHandler); } privatevoidApplicationBarMenuItem5_Click(objectsender,EventArgse) { Uriurl=newUri("/Pages/Setting/Impressum.xaml",UriKind.Relative); NavigationService.Navigate(url); } privatevoidApplicationBarMenuItem3_Click(objectsender,EventArgse) { Uriurl=newUri("/Pages/Dev/QRScanner.xaml",UriKind.Relative); NavigationService.Navigate(url); } privatevoidApplicationBar_StateChanged(objectsender,ApplicationBarStateChangedEventArgse) { if(e.IsMenuVisible) { ApplicationBar.Opacity=0.99; } else { ApplicationBar.Opacity=0.5; } } privatevoidShowOptIns() { this.GeoWatchOptIN(); } privatevoidGeoWatchOptIN() { MessageBoxResultresult=MessageBoxes.ShowGoeWatchOptInBox(); if(result==MessageBoxResult.OK) { Settings.AppSetting.GeoWatchEnable=true; Threadthread=newThread(newThreadStart(Utilities.DetermineAndStoreCurrentPosition)); thread.Start(); } else { Settings.AppSetting.GeoWatchEnable=false; } } privatevoidPintoStart_Click(objectsender,RoutedEventArgse) { FrameworkElementelment=senderasFrameworkElement; if(elment==null) { return; } stringtagButtonName=elment.Tagasstring; if(tagButtonName==null) { return; } switch(tagButtonName) { case"MensaAppButton": TileCreator.CreateMensaTile(); break; case"MailAppButton": TileCreator.CreateWebMailTile(); break; case"NewsAppButton": TileCreator.CreateNewsTile(); break; case"LectureAppButton": TileCreator.CreateLectureTile(); break; case"EventAppButton": TileCreator.CreateEventTile(); break; case"CampusMapAppButton": TileCreator.CreateCampusMapTile(); break; case"DepartmentAppButton": TileCreator.CreateDepartmentTile(); break; case"OpenHoursAppButton": TileCreator.CreateOpeningHoursTile(); break; case"LinkAppButton": TileCreator.CreateLinkTile(); break; case"OSAAppButton": TileCreator.CreateStudentCouncilTile(); break; case"examinationAppButton": TileCreator.CreateExamsTile(); break; case"personAppButton": TileCreator.CreatePersonTile(); break; case"placeNewsAppButton": TileCreator.CreatePlaceNewsTile(); break; } } privatevoidNDEFHandler(ProximityDevicesender,ProximityMessagemessage) { //createndefMessage this.device.StopSubscribingForMessage(message.SubscriptionId); varndefMessage=message.Data; byte[]data=ndefMessage.ToArray(); NDEFMessagendef=newNDEFMessage(data); stringnfcContent=ndef.GetContent(); if(nfcContent==null) { nfcContent=string.Empty; } stringsearchPid=Wp8StringManager.FilterPlaceIdinNFCResultString(nfcContent.Trim()); if(searchPid==null) { //Errorcase if(this.Dispatcher!=null) { this.Dispatcher.BeginInvoke(newAction(()=>MessageBoxes.ShowMainModelErrorMessageBox(AppResources.BTUTag_WrongTag))); } else { MessageBoxes.ShowMainModelErrorMessageBox(AppResources.BTUTag_WrongTag); } } else { if(AppSettings.BTUTagDefaultHandler.CampusMap==Settings.AppSetting.TagDefaultHandler) { //searchforplaceId this.GoToCampusMappage(nfcContent); } else { if(this.Dispatcher!=null) { this.Dispatcher.BeginInvoke(newAction(()=>this.ShowBtuTagMessageBox())); } else { this.ShowBtuTagMessageBox(); } } } this.ndefId=this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF,this.NDEFHandler); } privatevoidGoToCampusMappage(stringtagContent) { stringpid=Wp8StringManager.FilterPlaceIdinNFCResultString(tagContent); stringurlString=Constants.PathCampusmap_Campusmap; urlString+="?"+Constants.ParamModelMap_SearchTermAlias+"="+pid; Uriurl=newUri(urlStringasstring,UriKind.Relative); if(this.Dispatcher!=null) { this.Dispatcher.BeginInvoke(newAction(()=>NavigationService.Navigate(url))); } else { NavigationService.Navigate(url); } } privatevoidShowBtuTagMessageBox() { MessageBoxResultmsgResult=MessageBoxes.ShowBtuTagInfoOkCancelMessageBox(); if(msgResult.Equals(MessageBoxResult.OK)) { stringurlString=Constants.PathBTUTag_Info; Uriurl=newUri(urlStringasstring,UriKind.Relative); this.NavigationService.Navigate(url); return; } } #endregion #endregion } }