/// <summary> /// Sets the theme for the app. /// </summary> async Task SetAppTheme(AppThemeViewModel theme) { try { Application.Current.UserAppTheme = theme.Key; Settings.AppTheme = theme.Key; foreach (var item in AppThemes) { item.IsSelected = false; } AppThemes.FirstOrDefault(x => x.Key == Settings.AppTheme).IsSelected = true; RaisePropertyChanged(nameof(AppThemes)); //var statusBar = DependencyService.Get<IStatusBar>(); //statusBar?.SetStatusBarColor((OSAppTheme)theme.Key, Color.Black); HapticFeedback.Perform(HapticFeedbackType.Click); AnalyticsService.Track("App Theme Changed", nameof(theme), ((OSAppTheme)theme.Key).ToString() ?? "null"); } catch (Exception ex) { await DialogService.AlertAsync(Translations.error_couldntchangetheme, Translations.error_title, Translations.ok).ConfigureAwait(false); AnalyticsService.Report(ex); } }
void SetAppTheme(AppThemeViewModel theme) { foreach (var item in AppThemes) { item.IsSelected = false; } switch (theme.Key) { case 0: Application.Current.UserAppTheme = OSAppTheme.Unspecified; Preferences.Set(Settings.AppTheme, (int)OSAppTheme.Unspecified); break; case 1: Application.Current.UserAppTheme = OSAppTheme.Light; Preferences.Set(Settings.AppTheme, (int)OSAppTheme.Light); break; case 2: Application.Current.UserAppTheme = OSAppTheme.Dark; Preferences.Set(Settings.AppTheme, (int)OSAppTheme.Dark); break; default: break; } AppThemes.FirstOrDefault(x => x.Key == Preferences.Get(Settings.AppTheme, Settings.AppThemeDefault)).IsSelected = true; RaisePropertyChanged(nameof(AppThemes)); }
public ThemePickerViewModel(IAnalyticsService analyticsService, IAuthService authService, IDialogService dialogService, INavigationHelper navigationHelper) : base(analyticsService, authService, dialogService, navigationHelper) { SetAppThemeCommand = new Command <AppThemeViewModel>((x) => SetAppTheme(x)); AppThemes.FirstOrDefault(x => x.Key == Preferences.Get(Settings.AppTheme, Settings.AppThemeDefault)).IsSelected = true; }
private void LoadDefaults() { if (!this.IsInDesignMode) { SelectedAppTheme = AppThemes.FirstOrDefault(at => at.Name == App.SelectedAppTheme.Name); SelectedAccent = AccentColors.FirstOrDefault(ac => ac.Name == App.SelectedAccent.Name); SelectedLang = App.Language; App.LanguageChanged += AppOnLanguageChanged; } }
public ThemePickerViewModel(IAnalyticsService analyticsService) : base(analyticsService) { SetAppThemeCommand = new AsyncCommand <AppThemeViewModel>((x) => SetAppTheme(x)); AppThemes.FirstOrDefault(x => x.Key == Settings.AppTheme).IsSelected = true; }