using System.Linq; using Windows.Globalization; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; namespace FoxTube.Views.SettingsSections { /// /// Preferences page /// public sealed partial class General : Page { public General() { InitializeComponent(); language.SelectedItem = language.Items.FirstOrDefault(i => ((ComboBoxItem)i).Tag.ToString() == FoxTube.Settings.Language); safeSearch.SelectedIndex = FoxTube.Settings.SafeSearch; meteredWarning.IsOn = FoxTube.Settings.CheckConnection; autoplay.IsOn = FoxTube.Settings.Autoplay; explicitWarning.IsOn = FoxTube.Settings.BlockExplicitContent; channelNotifications.IsOn = FoxTube.Settings.VideoNotifications; developersNews.IsOn = FoxTube.Settings.DevNotifications; clipboardProcessing.IsOn = FoxTube.Settings.ProcessClipboard; switch (FoxTube.Settings.Theme) { case 0: light.IsChecked = true; break; case 1: dark.IsChecked = true; break; case 2: system.IsChecked = true; break; } } private void LoadRelevaneLanguageList(object sender, RoutedEventArgs e) { // TODO: Add list loading } private void LoadRegionList(object sender, RoutedEventArgs e) { // TODO: Add list loading } private void LoadQualitiesList(object sender, RoutedEventArgs e) { // TODO: Add qualities loading quality.SelectedItem = quality.Items.FirstOrDefault(i => ((ComboBoxItem)i).Tag.ToString() == FoxTube.Settings.DesiredVideoQuality); } private void LanguageChanged(object sender, SelectionChangedEventArgs e) { if ((language.SelectedItem as ComboBoxItem).Tag.ToString() == FoxTube.Settings.Language) return; ApplicationLanguages.PrimaryLanguageOverride = (language.SelectedItem as ComboBoxItem).Tag.ToString(); FoxTube.Settings.Language = (language.SelectedItem as ComboBoxItem).Tag.ToString(); restart.Visibility = Visibility.Visible; } private void Restart(object sender, RoutedEventArgs e) => Utils.Utils.RestartApp(); private void RelevanceLanguageChanged(object sender, SelectionChangedEventArgs e) => FoxTube.Settings.RelevanceLanguage = ((ComboBoxItem)relevanceLanguage.SelectedItem).Tag.ToString(); private void RegionChanged(object sender, SelectionChangedEventArgs e) => FoxTube.Settings.Region = ((ComboBoxItem)region.SelectedItem).Tag.ToString(); private void SafeSearchChanged(object sender, SelectionChangedEventArgs e) => FoxTube.Settings.SafeSearch = safeSearch.SelectedIndex; private void QualityChanged(object sender, SelectionChangedEventArgs e) => FoxTube.Settings.DesiredVideoQuality = (quality.SelectedItem as ComboBoxItem).Tag as string; private void MeteredWarningChanged(object sender, RoutedEventArgs e) => FoxTube.Settings.CheckConnection = meteredWarning.IsOn; private void AutoplayChanged(object sender, RoutedEventArgs e) => FoxTube.Settings.Autoplay = autoplay.IsOn; private void ExplicitWarningChanged(object sender, RoutedEventArgs e) => FoxTube.Settings.BlockExplicitContent = explicitWarning.IsOn; private void ChannelNotificationsChanged(object sender, RoutedEventArgs e) => FoxTube.Settings.VideoNotifications = channelNotifications.IsOn; private void ClipboardProcessingChanged(object sender, RoutedEventArgs e) => FoxTube.Settings.ProcessClipboard = clipboardProcessing.IsOn; private void DevelopersNotificationsChanged(object sender, RoutedEventArgs e) => FoxTube.Settings.DevNotifications = developersNews.IsOn; private void ThemeChanged(object sender, RoutedEventArgs e) { if (FoxTube.Settings.Theme.ToString() == (string)(sender as RadioButton).Tag) return; switch ((sender as RadioButton).Name) { case "light": FoxTube.Settings.Theme = 0; MainPage.Current.RequestedTheme = ElementTheme.Light; App.UpdateTitleBar(false); break; case "dark": FoxTube.Settings.Theme = 1; MainPage.Current.RequestedTheme = ElementTheme.Dark; App.UpdateTitleBar(true); break; default: FoxTube.Settings.Theme = 2; MainPage.Current.RequestedTheme = ElementTheme.Default; App.UpdateTitleBar(Application.Current.RequestedTheme == ApplicationTheme.Dark); break; } } private void ResetApp(object sender, RoutedEventArgs e) { Utils.Utils.InitializeFailsafeProtocol(); } } }