示例#1
0
        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;
            }
        }
示例#2
0
        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);
            }
        }