Exemple #1
0
        public static async Task <bool> PinSecondaryTile(string imageUri, string tileId, string DisplayName, string argument, Color color, FrameworkElement sender)
        {
            if (SecondaryTile.Exists(tileId))
            {
                SecondaryTile tile = (await SecondaryTile.FindAllAsync()).FirstOrDefault((t) => t.TileId == tileId);
                if (tile != null)
                {
                    await tile.RequestDeleteAsync();
                }
                MainPage.ncSettings.objValue    = false;
                MainPage.ncSettings.setSettings = "PinToStart";
                return(false);
            }
            Uri           logo    = new Uri("ms-appx:///" + imageUri);
            SecondaryTile secTile = new SecondaryTile(tileId, DisplayName,
                                                      argument, logo, TileSize.Square150x150);

            secTile.VisualElements.BackgroundColor             = color;
            secTile.VisualElements.ForegroundText              = ForegroundText.Light;
            secTile.VisualElements.ShowNameOnSquare150x150Logo = true;

            bool isPinned = await secTile.RequestCreateForSelectionAsync(GetElementRect((FrameworkElement)sender), Placement.Below);

            if (isPinned)
            {
                MainPage.ncSettings.objValue    = isPinned;
                MainPage.ncSettings.setSettings = "PinToStart";
            }
            return(isPinned);
        }
Exemple #2
0
        //Закрепить или открепить вспомогательную плитку
        private async void PinToStart_Click(object sender, RoutedEventArgs e)
        {
            if (SecondaryTile.Exists(SecondaryTileID))
            {
                //Открепить
                SecondaryTile secondaryTile = new SecondaryTile(SecondaryTileID);

                await secondaryTile.RequestDeleteAsync();

                ToggleAppBarButton();
            }
            else
            {
                //Закрепить
                Uri           square150x150Logo       = new Uri("ms-appx:///Assets/Icon360.png");
                string        DisplayNameAndArguments = this.GroupTitle.Text;
                TileSize      newTileDesiredSize      = TileSize.Square150x150;
                SecondaryTile secondaryTile           = new SecondaryTile(SecondaryTileID, DisplayNameAndArguments, DisplayNameAndArguments, square150x150Logo, newTileDesiredSize);

                secondaryTile.VisualElements.Square71x71Logo             = new Uri("ms-appx:///Assets/Icon170.png");
                secondaryTile.VisualElements.ShowNameOnSquare150x150Logo = true;
                secondaryTile.VisualElements.ForegroundText = ForegroundText.Dark;

                await secondaryTile.RequestCreateAsync();

                BadgeUpdaterForSecondaryTile();

                ToggleAppBarButton();
            }
        }
Exemple #3
0
        /// <summary>
        /// Creates or removes a secondary tile
        /// </summary>
        /// <param name="removeTile"><c>true</c> to remove tile, <c>false</c> to create tile</param>
        /// <returns>Asynchronous task</returns>
        private async Task CreateOrRemoveTileAsync(bool removeTile)
        {
            if (!removeTile)
            {
                var steps = await App.Engine.GetTotalStepCountAsync(DateTime.Now.Date);

                uint stepCount  = steps.TotalCount;
                uint meter      = (NUM_SMALL_METER_IMAGES - 1) * Math.Min(stepCount, TARGET_STEPS) / TARGET_STEPS;
                uint meterSmall = (NUM_LARGE_METER_IMAGES - 1) * Math.Min(stepCount, TARGET_STEPS) / TARGET_STEPS;
                try
                {
                    var secondaryTile = new SecondaryTile(TILE_ID, "Steps", "/MainPage.xaml", new Uri("ms-appx:///Assets/Tiles/square" + meterSmall + ".png", UriKind.Absolute), TileSize.Square150x150);
                    secondaryTile.VisualElements.Square71x71Logo             = new Uri("ms-appx:///Assets/Tiles/small_square" + meterSmall + ".png", UriKind.Absolute);
                    secondaryTile.VisualElements.ShowNameOnSquare150x150Logo = true;
                    secondaryTile.VisualElements.ShowNameOnSquare310x310Logo = false;
                    secondaryTile.VisualElements.ShowNameOnWide310x150Logo   = false;
                    secondaryTile.VisualElements.BackgroundColor             = Color.FromArgb(255, 0, 138, 0);
                    secondaryTile.VisualElements.Wide310x150Logo             = new Uri("ms-appx:///Assets/Tiles/wide" + meter + ".png", UriKind.Absolute);
                    secondaryTile.RoamingEnabled = false;
                    await secondaryTile.RequestCreateAsync();
                }
                catch (Exception)
                {
                }
            }
            else
            {
                SecondaryTile secondaryTile = new SecondaryTile(TILE_ID);
                await secondaryTile.RequestDeleteAsync();

                UpdateMenuAndAppBarIcons();
            }
        }
        private async void btnPinToStart_Click(object sender, RoutedEventArgs e)
        {
            // Is recipe already pinned?
            if (SecondaryTile.Exists(item.UniqueId))
            {
                var tile = new SecondaryTile(item.UniqueId);
                await tile.RequestDeleteAsync();

                btnPinToStart.Icon = new SymbolIcon(Symbol.Pin);
            }
            else
            {
                var uri = new Uri(item.TileImagePath.AbsoluteUri);

                var tile = new SecondaryTile(
                    item.UniqueId,                  // Tile ID
                    item.ShortTitle,                // Tile short name
                    item.UniqueId,                  // Activation argument
                    uri,                            // Tile logo URI
                    TileSize.Square150x150
                    );

                await tile.RequestCreateAsync();

                btnPinToStart.Icon = new SymbolIcon(Symbol.UnPin);
            }
        }
Exemple #5
0
        private async void btnPin_Click(object sender, RoutedEventArgs e)
        {
            tileId = note.ID;
            SecondaryTile tile = (await SecondaryTile.FindAllAsync()).FirstOrDefault((t) => t.TileId == tileId);

            if (tile != null)
            {
                await tile.RequestDeleteAsync();

                btnPin.Icon = new SymbolIcon(Symbol.Pin);
                new MessageDialog("Tile removed successfully").ShowAsync();
            }
            else
            {
                SecondaryTile tileData = new SecondaryTile()
                {
                    TileId      = note.ID,
                    DisplayName = note.Title,
                    Arguments   = note.Content
                };
                tileData.VisualElements.Square150x150Logo           = new Uri("ms-appx:///Assets/tile.png");
                tileData.VisualElements.ShowNameOnSquare150x150Logo = true;
                tileData.RequestCreateAsync();
                btnPin.Icon = new SymbolIcon(Symbol.UnPin);
            }
        }
        public async static Task <bool> PinSecondaryTileWithImages(string tileId, List <NotificationTile> notificationTileList, NotificationSecondaryTileType tileType = NotificationSecondaryTileType.DefaultTile, FrameworkElement element = null)
        {
            bool isPin = false;

            if (!string.IsNullOrEmpty(tileId) && !string.IsNullOrWhiteSpace(tileId))
            {
                if (CheckSecondaryTileExist(tileId))
                {
                    isPin = true;
                }
                else
                {
                    var isCreateSecondaryTile = await CreateSecondaryTiles(tileId, notificationTileList, element);

                    if (isCreateSecondaryTile)
                    {
                        UpdateSecondaryTileWithImages(tileId, notificationTileList, tileType);
                        isPin = true;
                    }
                    else
                    {
                        SecondaryTile secondaryTile = new SecondaryTile(tileId);
                        await secondaryTile.RequestDeleteAsync();
                    }
                }
            }
            return(isPin);
        }
        private async void removeTile()
        {
            SecondaryTile tileSecondaria = new SecondaryTile(this.AppbarTileId);
            bool          unpinned       = await tileSecondaria.RequestDeleteAsync();

            ToggleAppBarButton(unpinned);
        }
        private async void PinButton_Click(object sender, RoutedEventArgs e)
        {
            var   button    = sender as AppBarToggleButton;
            var   transform = button.TransformToVisual(pageRoot);
            Point location  = transform.TransformPoint(new Point(0, 0));

            if (!SecondaryTile.Exists(ViewModel.SeriesId.ToString()))
            {
                Size size     = new Size(150, 150);
                var  bookmark = ViewModel.CreateBookmark();
                //ViewModel.IsLoading = true;
                var imageUri = await AppGlobal.CreateTileImageAsync(new Uri(bookmark.DescriptionImageUri));

                //ViewModel.IsLoading = false;
                string args = bookmark.Position.ToString();
                var    tile = new SecondaryTile(ViewModel.SeriesId.ToString(), ViewModel.SeriesData.Title, args, imageUri, TileSize.Default);
                //var tile = new SecondaryTile(ViewModel.SeriesId.ToString(), "LightNovel", ViewModel.SeriesData.Title, args, TileOptions.ShowNameOnLogo, imageUri);
                try
                {
                    button.IsChecked = await tile.RequestCreateAsync(location);
                }
                catch (Exception)
                {
                }

                SyncPinButtonView();
            }
            else
            {
                var tile = new SecondaryTile(ViewModel.SeriesId.ToString());
                button.IsChecked = !await tile.RequestDeleteAsync(location);

                SyncPinButtonView();
            }
        }
Exemple #9
0
        private async void TransparentTileBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (isTransparentTilePinned != isPinned(this.TransparentTileBox.SelectedItem.ToString()))
            {
                if (isPinned(this.TransparentTileBox.SelectedItem.ToString()) == true)
                {
                    //Закрепить
                    Uri           square150x150Logo  = new Uri("ms-appx:///Assets/Icon360.png");
                    TileSize      newTileDesiredSize = TileSize.Square150x150;
                    SecondaryTile secondaryTile      = new SecondaryTile(TransparentTileID, "ListBox", "App", square150x150Logo, newTileDesiredSize);

                    secondaryTile.VisualElements.Square71x71Logo             = new Uri("ms-appx:///Assets/Icon170.png");
                    secondaryTile.VisualElements.ShowNameOnSquare150x150Logo = true;
                    secondaryTile.VisualElements.ForegroundText = ForegroundText.Dark;

                    await secondaryTile.RequestCreateAsync();

                    isTransparentTilePinned = true;
                }
                else
                {
                    //Открепить
                    SecondaryTile secondaryTile = new SecondaryTile(TransparentTileID);

                    await secondaryTile.RequestDeleteAsync();

                    isTransparentTilePinned = false;
                }
            }
        }
Exemple #10
0
        // pin to start
        private async void PinLine(object sender, RoutedEventArgs e, Card card, bool remove)
        {
            string        tileID = $@"MenetrendApp-{card.ParentLine.FromsID}-{card.ParentLine.FromlsID}-{card.ParentLine.TosID}-{card.ParentLine.TolsID}";
            SecondaryTile tile   = new SecondaryTile(tileID, card.ParentLine.Name, $@"{card.ParentLine.From}|{card.ParentLine.To}|{card.ParentLine.Name}", new Uri("ms-appx:///Assets/Wide310x150Secondary.scale-200.png"), TileSize.Wide310x150);

            if (remove)
            {
                try { await tile.RequestDeleteAsync(); } catch (Exception) { }
            }
            else
            {
                var visual = tile.VisualElements;
                visual.ShowNameOnSquare150x150Logo = true;
                visual.ShowNameOnWide310x150Logo   = true;
                visual.Square150x150Logo           = new Uri("ms-appx:///Assets/Square150x150Secondary.scale-200.png");
                visual.Wide310x150Logo             = new Uri("ms-appx:///Assets/Wide310x150Secondary.scale-200.png");
                visual.Square71x71Logo             = new Uri("ms-appx:///Assets/Square70x70Secondary.scale-100.png");

                await tile.RequestCreateAsync();

#if WINDOWS_PHONE_APP
                XmlDocument      tileXml = Utilities.TileData.getXML("", card.LineNumber, card.StartTime, card.From, card.EndTime, card.To, false);
                TileNotification notif   = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForSecondaryTile(tileID).Update(notif);
#elif WINDOWS_UWP
                await App.trigger.RequestAsync(); // run tile updater
#endif
            }
        }
Exemple #11
0
        private async void btn_unPin_Click(object sender, RoutedEventArgs e)
        {
            SecondaryTile secondaryTile = new SecondaryTile(_banId);
            await secondaryTile.RequestDeleteAsync();

            btn_Pin.Visibility   = Visibility.Visible;
            btn_unPin.Visibility = Visibility.Collapsed;
        }
 public async void RemoveSecondaryTile(string name)
 {
     if (TileExists(name))
     {
         var tile = new SecondaryTile("r" + name);
         await tile.RequestDeleteAsync();
     }
 }
Exemple #13
0
 public static async void DeleteSecondaryTile(string guid)
 {
     if (Windows.UI.StartScreen.SecondaryTile.Exists(guid))
     {
         SecondaryTile secondaryTile = new SecondaryTile(guid);
         await secondaryTile.RequestDeleteAsync();
     }
 }
        private static async Task UpdateTileAsync(SecondaryTile tile, AccountDataItem account, AccountDataStore data, Guid classId)
        {
            try
            {
                DateTime todayInLocal = DateTime.Today;

                // Get the class tile settings
                ClassTileSettings settings = await account.GetClassTileSettings(classId);

                ClassData classData = await LoadDataAsync(data, classId, DateTime.SpecifyKind(todayInLocal, DateTimeKind.Utc), settings);

                // If classData was null, that means the class wasn't found, so we should delete the tile
                if (classData == null)
                {
                    await tile.RequestDeleteAsync();
                    return;
                }

                bool changed = false;

                string desiredName = GetTrimmedClassName(classData.Class.Name);

                Color desiredColor;

                if (settings.CustomColor != null)
                    desiredColor = ColorTools.GetColor(settings.CustomColor);
                else
                    desiredColor = ColorTools.GetColor(classData.Class.Color);

                if (!tile.DisplayName.Equals(desiredName))
                {
                    changed = true;
                    tile.DisplayName = desiredName;
                }

                if (!tile.VisualElements.BackgroundColor.Equals(desiredColor))
                {
                    changed = true;
                    tile.VisualElements.BackgroundColor = desiredColor;
                }

                if (changed)
                    await tile.UpdateAsync();


                var updater = TileUpdateManager.CreateTileUpdaterForSecondaryTile(tile.TileId);

                UpdateUpcomingTile(updater, classData.AllUpcoming, todayInLocal, UpcomingTileType.ClassTile, settings);
            }

            catch (Exception ex)
            {
                if (!UWPExceptionHelper.TrackIfNotificationsIssue(ex, "Tiles"))
                {
                    throw ex;
                }
            }
        }
 public async void DeleteSecondaryTile(string tileID)
 {
     if (!SecondaryTile.Exists(tileID))
     {
         return;
     }
     SecondaryTile secondaryTile = new SecondaryTile(tileID);
     await secondaryTile.RequestDeleteAsync();
 }
        private async void DeleteSecondaryTile_Click(object sender, RoutedEventArgs e)
        {
            if (SecondaryTile.Exists("tileId"))
            {
                SecondaryTile toBeDeleted = new SecondaryTile("tileId");

                bool isDeleted = await toBeDeleted.RequestDeleteAsync();
            }
        }
        public async void Unpin()
        {
            var deleted = await _tile.RequestDeleteAsync();

            if (deleted)
            {
                Tile = null;
            }
        }
Exemple #18
0
        private async Task UnpinTile(long iD)
        {
            string tileId = "website" + iD;

            // Initialize a secondary tile with the same tile ID you want removed
            SecondaryTile toBeDeleted = new SecondaryTile(tileId);

            // And then unpin the tile
            await toBeDeleted.RequestDeleteAsync();
        }
        public async Task UnPin()
        {
            if (SecondaryTile.Exists(ForumThread.Id))
            {
                SecondaryTile toBeDeleted = new SecondaryTile(ForumThread.Id);
                await toBeDeleted.RequestDeleteAsync();

                IsPinned = false;
            }
        }
 /// <summary>
 /// 移除辅助磁贴
 /// </summary>
 /// <param name="tileId">磁贴的唯一 ID</param>
 public async static Task DeleteSecondaryTileAsync(string tileId)
 {
     if (Windows.UI.StartScreen.SecondaryTile.Exists(tileId))
     {
         // First prepare the tile to be unpinned
         SecondaryTile secondaryTile = new SecondaryTile(tileId);
         // Now make the delete request.
         await secondaryTile.RequestDeleteAsync();
     }
 }
Exemple #21
0
        public async void UnPinItemSecondaryTile()
        {
            var tile    = new SecondaryTile(Item.Id.ToString());
            var success = await tile.RequestDeleteAsync();

            if (success)
            {
                RaisePropertyChanged(nameof(IsItemPinned));
            }
        }
        public static async void RemoveTileIfExists(string tileId)
        {
            //must exists
            if (!SecondaryTile.Exists(tileId))
            {
                return;
            }

            var tile = new SecondaryTile(tileId);
            await tile.RequestDeleteAsync();
        }
Exemple #23
0
        public async Task <bool> DeleteTile(string tileId)
        {
            Argument.RequiresNotNullOrEmpty(tileId, nameof(tileId));

            if (SecondaryTile.Exists(tileId))
            {
                var appTile = new SecondaryTile(tileId);
                return(await appTile.RequestDeleteAsync());
            }
            return(true);
        }
Exemple #24
0
        public async Task <bool> UnpinAsync(string tileId)
        {
            System.Diagnostics.Contracts.Contract.Requires(tileId != null, "TileId");
            if (!SecondaryTile.Exists(tileId))
            {
                return(true);
            }
            var tile = new SecondaryTile(tileId);

            return(await tile.RequestDeleteAsync());
        }
Exemple #25
0
        public async Task ChangePinStatusAsync(int idSensor)
        {
            if (Windows.UI.StartScreen.SecondaryTile.Exists(idSensor.ToString()))
            {
                SecondaryTile secondaryTile2 = new SecondaryTile(idSensor.ToString());
                // Now make the delete request.
                bool isUnpinned = await secondaryTile2.RequestDeleteAsync();

                return;
            }
            // Prepare package images for all four tile sizes in our tile to be pinned as well as for the square30x30 logo used in the Apps view.
            Uri square150x150Logo = new Uri("ms-appx:///Assets/square150x150Tile-sdk.png");
            Uri wide310x150Logo   = new Uri("ms-appx:///Assets/wide310x150Tile-sdk.png");
            Uri square310x310Logo = new Uri("ms-appx:///Assets/square310x310Tile-sdk.png");
            Uri square30x30Logo   = new Uri("ms-appx:///Assets/square30x30Tile-sdk.png");

            // During creation of secondary tile, an application may set additional arguments on the tile that will be passed in during activation.
            // These arguments should be meaningful to the application. In this sample, we'll pass in the date and time the secondary tile was pinned.
            string tileActivationArguments = $"idSensor={idSensor}";

            // Create a Secondary tile with all the required arguments.
            // Note the last argument specifies what size the Secondary tile should show up as by default in the Pin to start fly out.
            // It can be set to TileSize.Square150x150, TileSize.Wide310x150, or TileSize.Default.
            // If set to TileSize.Wide310x150, then the asset for the wide size must be supplied as well.
            // TileSize.Default will default to the wide size if a wide size is provided, and to the medium size otherwise.
            SecondaryTile secondaryTile = new SecondaryTile(idSensor.ToString(),
                                                            idSensor.ToString(),
                                                            tileActivationArguments,
                                                            square150x150Logo,
                                                            TileSize.Square150x150);


            // Like the background color, the square30x30 logo is inherited from the parent application tile by default.
            // Let's override it, just to see how that's done.
            secondaryTile.VisualElements.Square30x30Logo = square30x30Logo;

            // The display of the secondary tile name can be controlled for each tile size.
            // The default is false.
            secondaryTile.VisualElements.ShowNameOnSquare150x150Logo = true;


            // Specify a foreground text value.
            // The tile background color is inherited from the parent unless a separate value is specified.
            secondaryTile.VisualElements.ForegroundText = ForegroundText.Dark;

            // Set this to false if roaming doesn't make sense for the secondary tile.
            // The default is true;
            secondaryTile.RoamingEnabled = false;

            // Since pinning a secondary tile on Windows Phone will exit the app and take you to the start screen, any code after
            // RequestCreateForSelectionAsync or RequestCreateAsync is not guaranteed to run.  For an example of how to use the OnSuspending event to do
            // work after RequestCreateForSelectionAsync or RequestCreateAsync returns, see Scenario9_PinTileAndUpdateOnSuspend in the SecondaryTiles.WindowsPhone project.
            await secondaryTile.RequestCreateAsync();
        }
        public async Task <bool> UnPin(string pinnedItemId)
        {
            if (IsPinned(pinnedItemId))
            {
                var tile   = new SecondaryTile(pinnedItemId);
                var result = await tile.RequestDeleteAsync();

                return(result);
            }

            return(false);
        }
Exemple #27
0
        private async void deleteItem_Click(object sender, RoutedEventArgs e)
        {
            EntryInfo info = ((FrameworkElement)sender).DataContext as EntryInfo;
            await FileHistory.DeleteFromHistory(info.Key);

            if (Windows.UI.StartScreen.SecondaryTile.Exists(info.Key))
            {
                SecondaryTile st = new SecondaryTile(info.Key);
                await st.RequestDeleteAsync();
            }
            _history.Entries = await FileHistory.GetHistoryEntriesInfo();
        }
        /// <summary>
        /// create secondaryTile
        /// </summary>
        /// <param name="tileID"></param>
        /// <param name="content"></param>
        /// <param name="argument"></param>
        public async void OpenSecondaryTile(string tileID, string title, string argument)
        {
            SecondaryTile secondaryTile = new SecondaryTile(tileID);

            if (SecondaryTile.Exists(tileID))
            {
                await secondaryTile.RequestDeleteAsync();
            }
            secondaryTile = new SecondaryTile(tileID, title, argument, new Uri("ms-appx:///Assets/Tile150x150.png"), TileSize.Default);
            secondaryTile.VisualElements.ShowNameOnSquare150x150Logo = true;
            bool rev = await secondaryTile.RequestCreateAsync();
        }
        public async Task <bool> UnpinTile(string tileId)
        {
            if (SecondaryTileExists(tileId))
            {
                var  secondaryTile = new SecondaryTile(tileId);
                bool isUnpinned    = await secondaryTile.RequestDeleteAsync();

                return(isUnpinned);
            }

            return(true);
        }
        private static async void RemoveSecondaryTileAsync(string tileId)
        {
            if (SecondaryTile.Exists(tileId))
            {
                SecondaryTile secondaryTile = new SecondaryTile()
                {
                    TileId = tileId
                };

                await secondaryTile.RequestDeleteAsync();
            }
        }