private async void AvailableActions_ItemClick(object sender, ItemClickEventArgs e) { switch ((e.ClickedItem as StackPanel).Tag.ToString()) { case "SetHome": var settings = await UserDataHelper.GetSettings("Settings.json"); settings.DefaultLocation = _CityData.PlaceInfo; await UserDataHelper.WriteFile("Settings.json", settings); SetAsHome.IsEnabled = false; ShowToolTip("SavedAsHome", 2000); break; case "Favorite": var IsFavorited = (await UserDataHelper.SaveToFavorites("Favorites.json", _CityData.PlaceInfo)); if (IsFavorited == true) { await UserDataHelper.SaveFavoriteWeather(_CityData); SaveToFavorites.Visibility = Visibility.Collapsed; RemoveFromFavorites.Visibility = Visibility.Visible; ShowToolTip("Favorited", 2000); } break; case "UnFavorite": var IsUnfavorited = (await UserDataHelper.RemoveFromFavorites("Favorites.json", _CityData.PlaceInfo)); if (IsUnfavorited == true) { await UserDataHelper.RemoveFavoriteWeather(_CityData.PlaceInfo.PlaceId); SaveToFavorites.Visibility = Visibility.Visible; RemoveFromFavorites.Visibility = Visibility.Collapsed; ShowToolTip("Unfavorited", 2000); } break; case "Pin": ShowToolTip("Pinning", 2000); var IsPined = await LiveTile.UpdateCustomTile(PlaceInfo, CurrentWeatherResult, DailyForecastResult, CoverLink); if (IsPined == true) { PinToStart.Visibility = Visibility.Collapsed; UnPinFromStart.Visibility = Visibility.Visible; ShowToolTip("Pined", 2000); } break; case "UnPin": ShowToolTip("Unpinning", 2000); var IsUnPined = await LiveTile.UnpinCustomTile(_CityData.PlaceInfo.PlaceId); if (IsUnPined == true) { PinToStart.Visibility = Visibility.Visible; UnPinFromStart.Visibility = Visibility.Collapsed; ShowToolTip("Unpined", 2000); } break; case "Download": ShowToolTip("DownloadingImage", 2000); BitmapImage bitMap = Cover.Source as BitmapImage; string uri = bitMap?.UriSource.ToString(); await UserDataHelper.DownloadAsset(uri); ShowToolTip("Downloaded", 2000); break; case "Rate": await Launcher.LaunchUriAsync(new Uri(string.Format("ms-windows-store:REVIEW?PFN={0}", Windows.ApplicationModel.Package.Current.Id.FamilyName))); break; case "Feedback": await Microsoft.Services.Store.Engagement.StoreServicesFeedbackLauncher.GetDefault().LaunchAsync(); break; default: break; } }
protected async override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); _CityData = e.Parameter as CityData; /*set country flag*/ /*string _CountryCode = _CityData.PlaceInfo.DisplayName; * _CountryCode = _CountryCode.Substring(_CountryCode.LastIndexOf(",") + 2); * StorageFolder _assets = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets"); * StorageFolder _flags = await _assets.GetFolderAsync("CountriesFlag"); * * if (_flags.TryGetItemAsync(_CountryCode + ".png") != null) * { * CurrentPlaceName.Text = _CityData.PlaceInfo.DisplayName.Substring(0, _CityData.PlaceInfo.DisplayName.LastIndexOf(",")); * BitmapImage image = new BitmapImage(new Uri("ms-appx:///Assets/CountriesFlag/" + _CountryCode + ".png")); * CountryFlag.Source = image; * } * else { * CurrentPlaceName.Text = _CityData.PlaceInfo.DisplayName; * }*/ /*set country flag*/ CurrentPlaceName.Text = _CityData.PlaceInfo.DisplayName; this.DataContext = _CityData; DailyForecastResult = _CityData.DailyForecast; CurrentWeatherResult = _CityData.Current; PlaceInfo = _CityData.PlaceInfo; CoverLink = _CityData.CoverImage; /*set back navigation arguments*/ if (_LocationHistory == null) { _LocationHistory = new List <PlaceInfo>(); _LocationHistory.Add(_CityData.PlaceInfo); } if (_LocationHistory[_LocationHistory.Count - 1].PlaceId != _CityData.PlaceInfo.PlaceId) { _LocationHistory.Add(_CityData.PlaceInfo); } if (_LocationHistory.Count > 1) { SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible; AppNameGrid.Margin = new Thickness(55, 10, 0, 10); } else { SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed; AppNameGrid.Margin = new Thickness(20, 10, 0, 10); } /*set back navigation arguments*/ _Settings = await UserDataHelper.GetSettings("Settings.json"); if (_Settings.SaveData == "1" || _CityData.IsLocalData == true) { BottomItemsPivot.Items.Remove(BottomItemsPivot.Items.Single(p => ((PivotItem)p).Name == "NewsPivot")); BottomItemsPivot.Items.Remove(BottomItemsPivot.Items.Single(p => ((PivotItem)p).Name == "GalleryPivot")); _CityData.CoverImage = "ms-appx:///Assets/Weather/11.jpg"; if (_CityData.CoverImage != null) { BitmapImage image = new BitmapImage(new Uri(_CityData.CoverImage)); Cover.Source = image; } } else { int _CheckFileAge = await ApplicationData.Current.LocalFolder.TryGetItemAsync("News.json") != null ? await UserDataHelper.CheckFileAge("News.json", "local") : 1441; string Language = _Settings.Language ?? "en"; if (_CheckFileAge >= 1440) { _NewsResults = await News.GetNewsData(Language); bool _SaveNews = await UserDataHelper.SaveNewsData(_NewsResults); } else { _NewsResults = await UserDataHelper.GetSavedNews(); if (_NewsResults.Language != _Settings.Language) { _NewsResults = await News.GetNewsData(Language); bool _SaveNews = await UserDataHelper.SaveNewsData(_NewsResults); } } NewsData.ItemsSource = _NewsResults.articles; await GetCover(_CityData.PlaceInfo.DisplayName); } CoverLink = _CityData.CoverImage; var favorites = (await UserDataHelper.GetFavorites("Favorites.json")); var _CurrentPlace = favorites.Where(x => x.PlaceId == _CityData.PlaceInfo.PlaceId).ToList(); if (_CurrentPlace.Count > 0) { SaveToFavorites.Visibility = Visibility.Collapsed; RemoveFromFavorites.Visibility = Visibility.Visible; } SetAsHome.IsEnabled = _CityData.PlaceInfo.PlaceId == _Settings.DefaultLocation.PlaceId ? false : true; if (SecondaryTile.Exists(_CityData.PlaceInfo.PlaceId)) { PinToStart.Visibility = Visibility.Collapsed; UnPinFromStart.Visibility = Visibility.Visible; await LiveTile.UpdateCustomTile(PlaceInfo, CurrentWeatherResult, DailyForecastResult, CoverLink); } if (_CityData.PlaceInfo.PlaceId == _Settings.DefaultLocation.PlaceId) { LiveTile.UpdateTile(PlaceInfo, CurrentWeatherResult, DailyForecastResult, CoverLink); } if (favorites.ToList().Where(x => x.PlaceId == _CityData.PlaceInfo.PlaceId).FirstOrDefault() != null) { await UserDataHelper.SaveFavoriteWeather(_CityData); } }