示例#1
0
        private async Task <bool> LoadSavedWeatherData(bool _override)
        {
            if (_override)
            {
                // Load weather data
                try
                {
                    weather = await Settings.GetWeatherData(location.query);

                    if (wm.SupportsAlerts)
                    {
                        weather.weather_alerts = await Settings.GetWeatherAlertData(location.query);
                    }
                }
                catch (Exception ex)
                {
                    weather = null;
                    Logger.WriteLine(LoggerLevel.Error, ex, "WeatherDataLoader: error loading saved weather data");
                }

#if WINDOWS_UWP
                var userlang = GlobalizationPreferences.Languages.First();
                var culture  = new CultureInfo(userlang);
#else
                var culture = CultureInfo.CurrentCulture;
#endif
                var locale = wm.LocaleToLangCode(culture.TwoLetterISOLanguageName, culture.Name);

                bool isInvalid = weather == null || !weather.IsValid() || weather.source != Settings.API;
                if (wm.SupportsWeatherLocale && !isInvalid)
                {
                    isInvalid = weather.locale != locale;
                }

                return(!isInvalid);
            }
            else
            {
                return(await LoadSavedWeatherData());
            }
        }