Esempio n. 1
0
        public async Task <bool> UnpinAsync(string Id, Windows.UI.Popups.Placement placement = Windows.UI.Popups.Placement.Above)
        {
            System.Diagnostics.Contracts.Contract.Requires(Id != null, "TileId");
            if (!SecondaryTile.Exists(Id))
            {
                return(true);
            }
            var tile   = new SecondaryTile(Id);
            var result = await tile.RequestDeleteForSelectionAsync(new Rect(0, 0, 0, 0), placement);

            return(result);
        }
Esempio n. 2
0
        private async void TogglePin(SubredditItem subreddit, Rect rect)
        {
            string tileId = subreddit.Url;

            if (SecondaryTile.Exists(tileId))
            {
                SecondaryTile secondaryTile           = new SecondaryTile(tileId);
                Windows.UI.Popups.Placement placement = Windows.UI.Popups.Placement.Above;
                bool isUnpinned = await secondaryTile.RequestDeleteForSelectionAsync(rect, placement);

                ToggleAppBarButton(isUnpinned);
            }
            else
            {
                string   displayName             = $"/r/{subreddit.Url}";
                string   tileActivationArguments = $"subreddit://{tileId}";
                Uri      logo = new Uri("ms-appx:///Assets/Square150x150Logo.png");
                TileSize newTileDesiredSize = TileSize.Square150x150;

                SecondaryTile secondaryTile = new SecondaryTile(tileId, displayName, tileActivationArguments, logo, newTileDesiredSize);

                secondaryTile.VisualElements.Square71x71Logo   = new Uri("ms-appx:///Assets/Square71x71Logo.png");
                secondaryTile.VisualElements.Wide310x150Logo   = new Uri("ms-appx:///Assets/Wide310x150Logo.png");
                secondaryTile.VisualElements.Square310x310Logo = new Uri("ms-appx:///Assets/Square310x310Logo.png");
                secondaryTile.VisualElements.Square44x44Logo   = new Uri("ms-appx:///Assets/Square44x44Logo.png");

                secondaryTile.VisualElements.ShowNameOnSquare150x150Logo = true;
                secondaryTile.VisualElements.ShowNameOnSquare310x310Logo = true;
                secondaryTile.VisualElements.ShowNameOnWide310x150Logo   = true;

                Windows.UI.Popups.Placement placement = Windows.UI.Popups.Placement.Above;
                var tileManager = SimpleIoc.Default.GetInstance <TileManager>();
                if (!(Windows.Foundation.Metadata.ApiInformation.IsTypePresent(("Windows.Phone.UI.Input.HardwareButtons"))))
                {
                    bool isPinned = await secondaryTile.RequestCreateForSelectionAsync(rect, placement);

                    ToggleAppBarButton(!isPinned);
                }

                //Phone
                if ((Windows.Foundation.Metadata.ApiInformation.IsTypePresent(("Windows.Phone.UI.Input.HardwareButtons"))))
                {
                    //tileManager.ScheduleRedditTileUpdate(tileId, Vm.Images);
                    bool isPinned = await secondaryTile.RequestCreateAsync();

                    ToggleAppBarButton(!isPinned);
                }
                tileManager.UpdateRedditTile(tileId, Vm.Images);
            }
        }
Esempio n. 3
0
        private async void OnPinToStart(object sender, RoutedEventArgs e)
        {
            try
            {
                var fixedtitle = Regex.Replace(Scenario.Title, @"\W", "-");
                if (PinToStart.IsOn)
                {
                    if (string.IsNullOrWhiteSpace(fixedtitle))
                    {
                        PinToStart.IsOn = false;
                    }
                    else if (!SecondaryTile.Exists(fixedtitle))
                    {
                        Uri logo = new Uri(@"ms-appx:///Assets/Square150x150Logo.scale-200.png");
                        var tile = new SecondaryTile(fixedtitle,
                                                     Scenario.Title,
                                                     Scenario.Title,
                                                     logo,
                                                     TileSize.Default);

                        await tile.RequestCreateForSelectionAsync(GetElementRect((FrameworkElement)sender));
                    }
                }
                else if (!string.IsNullOrWhiteSpace(fixedtitle))
                {
                    if (SecondaryTile.Exists(fixedtitle))
                    {
                        SecondaryTile               secondaryTile = new SecondaryTile(fixedtitle);
                        Windows.Foundation.Rect     rect          = GetElementRect((FrameworkElement)sender);
                        Windows.UI.Popups.Placement placement     = Windows.UI.Popups.Placement.Above;
                        bool isUnpinned = await secondaryTile.RequestDeleteForSelectionAsync(rect, placement);
                    }
                }
            }
            catch (Exception ex)
            {
                ex.ToString();
                throw;
            }
        }