private CycleTileData CreateCycleTileData(LiveTilesOptions liveTileOptions)
        {
            CycleTileData tileData = new CycleTileData();

            if (!string.IsNullOrEmpty(liveTileOptions.Title))
            {
                tileData.Title = liveTileOptions.Title;
            }
            if (liveTileOptions.Count > 0)
            {
                tileData.Count = liveTileOptions.Count;
            }
            if (!string.IsNullOrEmpty(liveTileOptions.Image))
            {
                string[] imgs    = liveTileOptions.Image.Split('|');
                Uri[]    imgUris = new Uri[imgs.Length];
                for (int i = 0; i < imgs.Length; ++i)
                {
                    imgUris[i] = new Uri(imgs[i], UriKind.Relative);
                }
                tileData.CycleImages          = imgUris;
                tileData.SmallBackgroundImage = imgUris[0];
            }
            return(tileData);
        }
示例#2
0
        /// <summary>
        /// Cerates tile data
        /// </summary>
        private StandardTileData CreateTileData(LiveTilesOptions liveTileOptions)
        {
            StandardTileData standardTile = new StandardTileData();

            if (!string.IsNullOrEmpty(liveTileOptions.Title))
            {
                standardTile.Title = liveTileOptions.Title;
            }
            if (!string.IsNullOrEmpty(liveTileOptions.Image))
            {
                standardTile.BackgroundImage = new Uri(liveTileOptions.Image, UriKind.RelativeOrAbsolute);
            }
            if (liveTileOptions.Count > 0)
            {
                standardTile.Count = liveTileOptions.Count;
            }
            if (!string.IsNullOrEmpty(liveTileOptions.BackTitle))
            {
                standardTile.BackTitle = liveTileOptions.BackTitle;
            }
            if (!string.IsNullOrEmpty(liveTileOptions.BackContent))
            {
                standardTile.BackContent = liveTileOptions.BackContent;
            }
            if (!string.IsNullOrEmpty(liveTileOptions.BackImage))
            {
                standardTile.BackBackgroundImage = new Uri(liveTileOptions.BackImage, UriKind.RelativeOrAbsolute);
            }
            return(standardTile);
        }
        /// <summary>
        /// Creates flip tile data
        /// </summary>
        private IconicTileData CreateIconicTileData(LiveTilesOptions liveTileOptions)
        {
            IconicTileData TileData = new IconicTileData();

            // Title
            if (!string.IsNullOrEmpty(liveTileOptions.Title))
            {
                TileData.Title = liveTileOptions.Title;
            }

            // Count
            if (liveTileOptions.Count > 0)
            {
                TileData.Count = liveTileOptions.Count;
            }

            // WideContent1
            if (!string.IsNullOrEmpty(liveTileOptions.WideContent1))
            {
                TileData.WideContent1 = liveTileOptions.WideContent1;
            }

            // WideContent1
            if (!string.IsNullOrEmpty(liveTileOptions.WideContent2))
            {
                TileData.WideContent2 = liveTileOptions.WideContent2;
            }

            // WideContent3
            if (!string.IsNullOrEmpty(liveTileOptions.WideContent3))
            {
                TileData.WideContent3 = liveTileOptions.WideContent3;
            }

            // SmallIconImage
            if (!string.IsNullOrEmpty(liveTileOptions.SmallIconImage))
            {
                TileData.SmallIconImage = new Uri(liveTileOptions.SmallIconImage, UriKind.RelativeOrAbsolute);
            }

            // IconImage
            if (!string.IsNullOrEmpty(liveTileOptions.IconImage))
            {
                TileData.IconImage = new Uri(liveTileOptions.IconImage, UriKind.RelativeOrAbsolute);
            }

            // BackgroundColor
            if (!string.IsNullOrEmpty(liveTileOptions.BackgroundColor))
            {
                Color realBackgroundColor = ConvertStringToColor(liveTileOptions.BackgroundColor);
                TileData.BackgroundColor = realBackgroundColor;
            }

            return(TileData);
        }
        /// <summary>
        /// Creates tile
        /// </summary>
        private void CreateTile(LiveTilesOptions liveTileOptions)
        {
            if (string.IsNullOrEmpty(liveTileOptions.SecondaryTileUri))
            {
                DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
                return;
            }

            try
            {
                ShellTile foundTile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains(liveTileOptions.SecondaryTileUri));
                if (foundTile != null)
                {
                    DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Tile already exist"));
                }
                else
                {
                    Deployment.Current.Dispatcher.BeginInvoke(() =>
                    {
                        ShellTileData liveTile;

                        switch ((int)liveTileOptions.TileType)
                        {
                        case 1:
                            liveTile = CreateCycleTileData(liveTileOptions);
                            break;

                        case 2:
                            liveTile = CreateIconicTileData(liveTileOptions);
                            break;

                        default:
                            liveTile = CreateFlipTileDate(liveTileOptions);
                            break;
                        }

                        PhoneApplicationPage currentPage = ((PhoneApplicationFrame)Application.Current.RootVisual).Content as PhoneApplicationPage;
                        string currentUri = currentPage.NavigationService.Source.ToString().Split('?')[0];
                        ShellTile.Create(new Uri(currentUri + "?Uri=" + liveTileOptions.SecondaryTileUri, UriKind.Relative), liveTile, true);
                        tileTypes.Add(currentUri + "?Uri=" + liveTileOptions.SecondaryTileUri, liveTileOptions.TileType);
                        AppSettings.StoreSetting(TileSettingsName, tileTypes);
                        DispatchCommandResult(new PluginResult(PluginResult.Status.OK));
                    });
                }
            }
            catch
            {
                DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Error creating iconic tile"));
            }
        }
        /// <summary>
        /// Creates flip tile data
        /// </summary>
        private FlipTileData CreateFlipTileDate(LiveTilesOptions liveTileOptions)
        {
            FlipTileData flipTile = new FlipTileData();

            if (!string.IsNullOrEmpty(liveTileOptions.Title))
            {
                flipTile.Title = liveTileOptions.Title;
            }
            if (!string.IsNullOrEmpty(liveTileOptions.Image))
            {
                flipTile.BackgroundImage = new Uri(liveTileOptions.Image, UriKind.RelativeOrAbsolute);
            }
            if (liveTileOptions.Count > 0)
            {
                flipTile.Count = liveTileOptions.Count;
            }
            if (!string.IsNullOrEmpty(liveTileOptions.BackTitle))
            {
                flipTile.BackTitle = liveTileOptions.BackTitle;
            }
            if (!string.IsNullOrEmpty(liveTileOptions.BackContent))
            {
                flipTile.BackContent = liveTileOptions.BackContent;
            }
            if (!string.IsNullOrEmpty(liveTileOptions.BackImage))
            {
                flipTile.BackBackgroundImage = new Uri(liveTileOptions.BackImage, UriKind.RelativeOrAbsolute);
            }
            if (!string.IsNullOrEmpty(liveTileOptions.SmallImage))
            {
                flipTile.SmallBackgroundImage = new Uri(liveTileOptions.SmallImage, UriKind.RelativeOrAbsolute);
            }
            if (!string.IsNullOrEmpty(liveTileOptions.WideImage))
            {
                flipTile.WideBackgroundImage = new Uri(liveTileOptions.WideImage, UriKind.RelativeOrAbsolute);
            }
            if (!string.IsNullOrEmpty(liveTileOptions.WideContent))
            {
                flipTile.WideBackContent = liveTileOptions.WideContent;
            }
            if (!string.IsNullOrEmpty(liveTileOptions.WideBackImage))
            {
                flipTile.WideBackBackgroundImage = new Uri(liveTileOptions.WideBackImage, UriKind.RelativeOrAbsolute);
            }

            return(flipTile);
        }
        /// <summary>
        /// Tries to parse options string
        /// </summary>
        /// <param name="options"></param>
        /// <param name="tileOptions"></param>
        /// <returns></returns>
        private bool TryGetTileOptions(string options, out LiveTilesOptions tileOptions)
        {
            bool result = false;

            try
            {
                tileOptions = JsonHelper.Deserialize <LiveTilesOptions>(options);
                result      = true;
            }
            catch
            {
                tileOptions = null;
                DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
            }

            return(result);
        }
        /// <summary>
        /// Creates iconic tile data.
        /// </summary>
        private IconicTileData CreateIconicTileData(LiveTilesOptions liveTileOptions)
        {
            IconicTileData tileData = new IconicTileData();

            if (!string.IsNullOrEmpty(liveTileOptions.Title))
            {
                tileData.Title = liveTileOptions.Title;
            }
            if (liveTileOptions.Count > 0)
            {
                tileData.Count = liveTileOptions.Count;
            }
            if (!string.IsNullOrEmpty(liveTileOptions.Image))
            {
                tileData.IconImage = new Uri(liveTileOptions.Image, UriKind.RelativeOrAbsolute);
            }
            if (!string.IsNullOrEmpty(liveTileOptions.SmallImage))
            {
                tileData.SmallIconImage = new Uri(liveTileOptions.SmallImage, UriKind.RelativeOrAbsolute);
            }
            if (!string.IsNullOrEmpty(liveTileOptions.BackgroundColor))
            {
                tileData.BackgroundColor = LiveTiles.GetColorFromHexString(liveTileOptions.BackgroundColor);
            }
            if (!string.IsNullOrEmpty(liveTileOptions.WideContent))
            {
                string[] content = liveTileOptions.WideContent.Split('|');
                int      length  = content.Length;
                if (length >= 1)
                {
                    tileData.WideContent1 = content[0];
                }
                if (length >= 2)
                {
                    tileData.WideContent2 = content[1];
                }
                if (length >= 3)
                {
                    tileData.WideContent3 = content[2];
                }
            }
            return(tileData);
        }
        /// <summary>
        /// Creates standard tile data
        /// </summary>
        private StandardTileData CreateStandardTileData(LiveTilesOptions liveTileOptions)
        {
            StandardTileData TileData = new StandardTileData();

            // Title
            if (!string.IsNullOrEmpty(liveTileOptions.Title))
            {
                TileData.Title = liveTileOptions.Title;
            }

            // BackTitle
            if (!string.IsNullOrEmpty(liveTileOptions.BackTitle))
            {
                TileData.BackTitle = liveTileOptions.BackTitle;
            }

            // BackContent
            if (!string.IsNullOrEmpty(liveTileOptions.BackContent))
            {
                TileData.BackContent = liveTileOptions.BackContent;
            }

            // Count
            if (liveTileOptions.Count > 0)
            {
                TileData.Count = liveTileOptions.Count;
            }

            // BackgroundImage
            if (!string.IsNullOrEmpty(liveTileOptions.BackgroundImage))
            {
                TileData.BackgroundImage = new Uri(liveTileOptions.BackgroundImage, UriKind.RelativeOrAbsolute);
            }

            // BackBackgroundImage
            if (!string.IsNullOrEmpty(liveTileOptions.BackBackgroundImage))
            {
                TileData.BackBackgroundImage = new Uri(liveTileOptions.BackBackgroundImage, UriKind.RelativeOrAbsolute);
            }

            return(TileData);
        }
示例#9
0
 /// <summary>
 /// Cerates tile data
 /// </summary>
 private StandardTileData CreateTileData(LiveTilesOptions liveTileOptions)
 {
     StandardTileData standardTile = new StandardTileData();
     if (!string.IsNullOrEmpty(liveTileOptions.Title))
     {
         standardTile.Title = liveTileOptions.Title;
     }
     if (!string.IsNullOrEmpty(liveTileOptions.Image))
     {
         standardTile.BackgroundImage = new Uri(liveTileOptions.Image, UriKind.RelativeOrAbsolute);
     }
     if (liveTileOptions.Count > 0)
     {
         standardTile.Count = liveTileOptions.Count;
     }
     if (!string.IsNullOrEmpty(liveTileOptions.BackTitle))
     {
         standardTile.BackTitle = liveTileOptions.BackTitle;
     }
     if (!string.IsNullOrEmpty(liveTileOptions.BackContent))
     {
         standardTile.BackContent = liveTileOptions.BackContent;
     }
     if (!string.IsNullOrEmpty(liveTileOptions.BackImage))
     {
         standardTile.BackBackgroundImage = new Uri(liveTileOptions.BackImage, UriKind.RelativeOrAbsolute);
     }
     return standardTile;
 }
        /// <summary>
        /// Creates flip tile data
        /// </summary>
        private IconicTileData CreateIconicTileData(LiveTilesOptions liveTileOptions)
        {
            IconicTileData TileData = new IconicTileData();

            // Title
            if (!string.IsNullOrEmpty(liveTileOptions.Title))
            {
                TileData.Title = liveTileOptions.Title;
            }

            // Count
            if (liveTileOptions.Count > 0)
            {
                TileData.Count = liveTileOptions.Count;
            }

            // WideContent1
            if (!string.IsNullOrEmpty(liveTileOptions.WideContent1))
            {
                TileData.WideContent1 = liveTileOptions.WideContent1;
            }

            // WideContent1
            if (!string.IsNullOrEmpty(liveTileOptions.WideContent2))
            {
                TileData.WideContent2 = liveTileOptions.WideContent2;
            }

            // WideContent3
            if (!string.IsNullOrEmpty(liveTileOptions.WideContent3))
            {
                TileData.WideContent3 = liveTileOptions.WideContent3;
            }

            // SmallIconImage
            if (!string.IsNullOrEmpty(liveTileOptions.SmallIconImage))
            {
                TileData.SmallIconImage = new Uri(liveTileOptions.SmallIconImage, UriKind.RelativeOrAbsolute);
            }

            // IconImage 
            if (!string.IsNullOrEmpty(liveTileOptions.IconImage))
            {
                TileData.IconImage = new Uri(liveTileOptions.IconImage, UriKind.RelativeOrAbsolute);
            }

            // BackgroundColor 
            if (!string.IsNullOrEmpty(liveTileOptions.BackgroundColor))
            {
                Color realBackgroundColor = ConvertStringToColor(liveTileOptions.BackgroundColor);
                TileData.BackgroundColor = realBackgroundColor;
            }

            return TileData;
        }
        /// <summary>
        /// Creates flip tile data
        /// </summary>
        private FlipTileData CreateFlipTileData(LiveTilesOptions liveTileOptions)
        {
            FlipTileData TileData = new FlipTileData();

            // Title
            if (!string.IsNullOrEmpty(liveTileOptions.Title))
            {
                TileData.Title = liveTileOptions.Title;
            }

            // BackTitle
            if (!string.IsNullOrEmpty(liveTileOptions.BackTitle))
            {
                TileData.BackTitle = liveTileOptions.BackTitle;
            }

            // BackContent
            if (!string.IsNullOrEmpty(liveTileOptions.BackContent))
            {
                TileData.BackContent = liveTileOptions.BackContent; 
            }

            // WideBackContent
            if (!string.IsNullOrEmpty(liveTileOptions.WideBackContent))
            {
                TileData.WideBackContent = liveTileOptions.WideBackContent;
            }

            // Count
            if (liveTileOptions.Count > 0)
            {
                TileData.Count = liveTileOptions.Count;
            }

            // SmallBackgroundImage
            if (!string.IsNullOrEmpty(liveTileOptions.SmallBackgroundImage))
            {
                TileData.SmallBackgroundImage = new Uri(liveTileOptions.SmallBackgroundImage, UriKind.RelativeOrAbsolute);
            }

            // BackgroundImage
            if (!string.IsNullOrEmpty(liveTileOptions.BackgroundImage))
            {
                TileData.BackgroundImage = new Uri(liveTileOptions.BackgroundImage, UriKind.RelativeOrAbsolute);
            }

            // BackBackgroundImage
            if (!string.IsNullOrEmpty(liveTileOptions.BackBackgroundImage))
            {
                TileData.BackBackgroundImage = new Uri(liveTileOptions.BackBackgroundImage, UriKind.RelativeOrAbsolute);
            }

            // WideBackgroundImage
            if (!string.IsNullOrEmpty(liveTileOptions.WideBackgroundImage))
            {
                TileData.WideBackgroundImage = new Uri(liveTileOptions.WideBackgroundImage, UriKind.RelativeOrAbsolute);
            }

            // WideBackBackgroundImage
            if (!string.IsNullOrEmpty(liveTileOptions.WideBackBackgroundImage))
            {
                TileData.WideBackBackgroundImage = new Uri(liveTileOptions.WideBackBackgroundImage, UriKind.RelativeOrAbsolute);
            }

            return TileData;
        }
示例#12
0
 private CycleTileData CreateCycleTileData(LiveTilesOptions liveTileOptions)
 {
     CycleTileData tileData = new CycleTileData();
     if (!string.IsNullOrEmpty(liveTileOptions.Title))
     {
         tileData.Title = liveTileOptions.Title;
     }
     if (liveTileOptions.Count > 0)
     {
         tileData.Count = liveTileOptions.Count;
     }
     if (!string.IsNullOrEmpty(liveTileOptions.Image))
     {
         string[] imgs = liveTileOptions.Image.Split('|');
         Uri[] imgUris = new Uri[imgs.Length];
         for (int i = 0; i < imgs.Length; ++i)
         {
             imgUris[i] = new Uri(imgs[i], UriKind.Relative);
         }
         tileData.CycleImages = imgUris;
         tileData.SmallBackgroundImage = imgUris[0];
     }
     return tileData;
 }