public SettingsViewModel(Func <IDataSource> getGetDataSource, IConnectionListener connectionListener, IPurchase purchase)
        {
            _getDataSource = getGetDataSource;
            _regions       = new ObservableCollection <string>(I18nLanguages.Languages);
            var videoQuality = new VideoQuality();

            _videoQualities = new ObservableCollection <string>(videoQuality.GetQualityNames());

            _applicationThemes    = new ObservableCollection <ApplicationTheme>(ThemeManager.GetSupportedThemes());
            _applicationLanguages = new ObservableCollection <string>(LanguageManager.GetSupportedLanguages());

            _navigatioPanelViewModel = new NavigationPanelViewModel(_getDataSource, connectionListener, purchase);
            _navigatioPanelViewModel.IsSettingsSelected = true;
            _selectedRegion              = SettingsHelper.GetRegionName();
            _selectedQuality             = SettingsHelper.GetQuality();
            _selectedApplicationTheme    = SettingsHelper.GetTheme();
            _selectedLanguage            = SettingsHelper.GetLanguage();
            _currentLanguage             = _selectedLanguage;
            _isAutoplayVideo             = SettingsHelper.GetIsAutoPlayVideo();
            _isLargeItems                = SettingsHelper.GetIsLargeItems();
            _oldSelectedApplicationTheme = _selectedApplicationTheme;
        }