public MainPage() { InitializeComponent(); Loaded += (_, __) => { NANDService.OnNANDPluggedIn += () => { Dispatcher.BeginInvoke(new Action(() => { for (int i = 1; i < 6; i++) { (NANDContextMenu.Items[i] as MenuItem).IsEnabled = true; } })); }; NANDService.OnNANDRemoved += () => { for (int i = 1; i < 6; i++) { (NANDContextMenu.Items[i] as MenuItem).IsEnabled = false; } }; // init this first as other pages may request tasks on init TaskManagerView = new TaskManagerPage(); TaskManagerFrame.Content = TaskManagerView; TaskManagerView.Queue.Submit(new RunTask("Deriving keys...", new Task(() => HACGUIKeyset.Keyset.Load()))); DeviceService.Start(); TitleManagerView = new MainTitleManagerPage(); TitleManagerFrame.Content = TitleManagerView; SaveManagerView = new SaveManagerPage(); SaveManagerFrame.Content = SaveManagerView; StatusService.Bar = StatusBar; StatusService.Start(); if (IsAdministrator) { AdminButton.IsEnabled = false; } }; }
public MainPage() { InitializeComponent(); Loaded += (_, __) => { void rcmRefresh(bool b) { foreach (MenuItem item in RCMContextMenu.Items.Cast <MenuItem>().Where(i => i.Tag as string == "RequiresRCM")) { item.IsEnabled = b; } }; rcmRefresh(InjectService.LibusbKInstalled); void nandRefresh(bool b) { foreach (MenuItem item in NANDContextMenu.Items.Cast <MenuItem>().Where(i => i.Tag as string == "RequiresNAND")) { item.IsEnabled = b; } }; nandRefresh(false); InjectService.DeviceInserted += () => { if (InjectService.LibusbKInstalled) { Dispatcher.Invoke(() => rcmRefresh(true)); } }; InjectService.DeviceRemoved += () => { Dispatcher.Invoke(() => rcmRefresh(false)); }; NANDService.OnNANDPluggedIn += () => { Dispatcher.Invoke(() => nandRefresh(true)); }; NANDService.OnNANDRemoved += () => { Dispatcher.Invoke(() => nandRefresh(false)); }; SDService.OnSDPluggedIn += (drive) => { DirectoryInfo root = drive.RootDirectory; DirectoryInfo switchDir = root.GetDirectory("switch"); if (switchDir.Exists) { FileInfo prodKeysInfo = switchDir.GetFile("prod.keys"); if (prodKeysInfo.Exists) { try { ExternalKeys.ReadKeyFile(HACGUIKeyset.Keyset, prodKeysInfo.FullName); new SaveKeysetTask(null).CreateTask().RunSynchronously(); } catch (Exception e) { MessageBox.Show($"An error occured when attempting to import keys from SD card. It could be corrupted.\nError: {e.Message}"); } } } }; // init this first as other pages may request tasks on init TaskManagerView = new TaskManagerPage(); TaskManagerFrame.Content = TaskManagerView; StatusService.Bar = StatusBar; StatusService.CurrentTaskBlock = CurrentTaskBlock; CurrentTaskBlock.Background = StatusBar.Background; TaskManagerView.Queue.Submit(new RunTask("Opening/Deriving keys...", new Task(() => HACGUIKeyset.Keyset.LoadAll()))); DeviceService.Start(); TitleManagerView = new MainTitleManagerPage(); TitleManagerFrame.Content = TitleManagerView; SaveManagerView = new SaveManagerPage(0); SaveManagerFrame.Content = SaveManagerView; StatusService.Start(); if (Native.IsAdministrator) { AdminButton.IsEnabled = false; } }; }
public static void AmIOnPageSwitch(string page) { switch (page) { case "Logged Out": { LoginPage.AmIOnLoggedOutPage(); break; } case "Logged In": { LoginPage.AmIOnPage(); break; } case "Announcement Portal": { AnnouncementPortalPage.AmIOnPage(); break; } case "SSP": { SSPPage.AmIOnPage(); break; } case "Announcement Manager": { AnnouncementManagerPage.AmIOnPage(); break; } case "Incident Template Manager": { TemplateManagerPage.AmIOnPage(page); break; } case "Problem Template Manager": { TemplateManagerPage.AmIOnPage(page); break; } case "Change Template Manager": { TemplateManagerPage.AmIOnPage(page); break; } case "Flex1 Template Manager": { TemplateManagerPage.AmIOnPage(page); break; } case "Flex2 Template Manager": { TemplateManagerPage.AmIOnPage(page); break; } case "Incident Task Manager": { TaskManagerPage.AmIOnPage(page); break; } case "Change Task Manager": { TaskManagerPage.AmIOnPage(page); break; } case "User Center": { UserCenterPage.AmIOnPage(); break; } default: { log.Error("This page[" + page + "] does not exist. Check the feature file for errors."); Assert.Fail("This page[" + page + "] does not exist. Check the feature file for errors."); break; } } }