Exemple #1
0
        private void Play(BackgroundAudioPlayer player)
        {
            ReadPlaylist();
            if (m_iCurrentTrack >= m_aTracks.Count)
            {
                return;
            }

            try
            {
                RscStore store = new RscStore();

                string strAlbArt = "System/Theme/Current/Ico001_SoundPlayer.jpg";
                if (store.FileExists("A:\\System\\Theme\\Current\\Ico001_SoundPlayer.png"))
                {
                    strAlbArt = "System/Theme/Current/Ico001_SoundPlayer.png";
                }

                string sPath = m_aTracks[m_iCurrentTrack].Path;
                Uri    uri;
                if (sPath.ToLower()[0] == 'a' && sPath.ToLower()[1] == ':')
                {
                    //Iso Store...
                    uri = new Uri(sPath.Substring(3), UriKind.Relative);
                }
                else
                {
                    uri = new Uri("file:///" + sPath, UriKind.Absolute);
                }

                var audioTrack = new AudioTrack(uri,
                                                m_aTracks[m_iCurrentTrack].Title,
                                                "N/A",
                                                m_aTracks[m_iCurrentTrack].Album,
                                                new Uri(strAlbArt, UriKind.Relative),
                                                m_iCurrentTrack.ToString(),
                                                EnabledPlayerControls.All);
                player.Track = audioTrack;
            }
            catch (Exception e)
            {
                RscStore.AddSysEvent(e);
            }
        }
        public virtual string GetInfo(bool bForSysTile, string sIcoId, out Brush brBk, out Brush brFore,
                                      out double dFontSize, out string sErr,
                                      out string sNotiTitle, out string sNotiContent, out string sNotiSound,
                                      bool bCalledByAgent, object oAgentParam, out string sInfoToChngChk)
        {
            brBk      = null;
            brFore    = null;
            dFontSize = 0;
            sErr      = "";

            sNotiTitle   = "";
            sNotiContent = "";
            sNotiSound   = "";

            sInfoToChngChk = "";

            //Do not generate too many err files...
            //RscStore.AddSysEvent( ex, "Tile_Info_Title_Createion_Error" );
            RscStore.AddSysEvent("Not implemented: GetInfo", true, "Tile_Info_Title_Createion_Error");

            return("???");
        }
        public override string GetInfo(bool bForSysTile, string sIcoId, out Brush brBk, out Brush brFore,
                                       out double dFontSize, out string sErr,
                                       out string sNotiTitle, out string sNotiContent, out string sNotiSound,
                                       bool bCalledByAgent, object oAgentParam, out string sInfoToChngChk)
        {
            brBk      = null;
            brFore    = null;
            dFontSize = 0;
            sErr      = "";

            sNotiTitle   = "";
            sNotiContent = "";
            sNotiSound   = "";

            sInfoToChngChk = "";

            string sCnt = "";

            try
            {
                switch (sIcoId)
                {
                case csTileID:
                {
                    int iCount_NEW       = 0;
                    int iCount_NonAckAll = 0;
                    int iCountAll        = 0;

                    RscStore store = new RscStore();

                    string sUserIDlast = store.ReadTextFile(AppLogic.csSecretsFolder + "\\" + "UserIDlast.txt", "");

                    if (sUserIDlast.Length > 0)
                    {
                        string sPath = AppLogic.csSecretsFolder + "\\" + sUserIDlast;

                        sPath += "\\Threads";
                        if (store.FolderExists(sPath))
                        {
                            iCount_NEW       = store.ReadXmlDataFile(sPath + "\\" + "Count_NEW" + ".xml", iCount_NEW);
                            iCount_NonAckAll = store.ReadXmlDataFile(sPath + "\\" + "Count_NonAck" + ".xml", iCount_NonAckAll);
                            iCountAll        = store.ReadXmlDataFile(sPath + "\\" + "Count" + ".xml", iCountAll);
                        }
                    }

                    int iNewNow = 0;
                    if (bForSysTile)
                    {
                        /*
                         * try
                         * {
                         *      AppLogic al = new AppLogic();
                         *      iNew = al.ReadThreadData( );
                         * }
                         * catch( Exception )
                         * {
                         *      iNew = -1;
                         * }
                         */

                        if (bCalledByAgent)
                        {
                            iNewNow = 0;
                            if (!Int32.TryParse(oAgentParam.ToString(), out iNewNow))
                            {
                                iNewNow = -400;
                            }
                        }
                    }
                    else
                    {
                    }

                    string sTile;
                    if (iNewNow < 0)
                    {
                        if (iNewNow == AppLogic.ciAuthFail)
                        {
                            sTile = "NO CONN!";
                        }
                        else
                        {
                            sTile = "ERR: " + iNewNow.ToString();                                     //"ERROR!";
                        }
                    }
                    else
                    {
                        sTile = "new: " + iCount_NEW.ToString();
                    }
                    sCnt += sTile;

                    string sCont = "non-ack: " + iCount_NonAckAll.ToString() + " / " + iCountAll.ToString();

                    sCnt += "\n" + "non-ack: " + iCount_NonAckAll.ToString();
                    sCnt += "\n" + "all: " + iCountAll.ToString();

                    sInfoToChngChk = sCnt;

                    DateTime dNow = DateTime.Now;
                    sCnt += "\n\n" + "at: " + RscUtils.pad60(dNow.Hour) +
                            ":" + RscUtils.pad60(dNow.Minute);

                    if (iNewNow < 0 || iNewNow > 0 || iCount_NEW > 0)
                    {
                        brBk = new SolidColorBrush(Colors.Red);

                        sNotiTitle   = sTile;
                        sNotiContent = sCont;

                        //sNotiSound = /*"/Lib_Rsc;component/" +*/ "Media/BociBociTarka.wav";
                        sNotiSound = /*"/Lib_Rsc;component/" +*/ "Media/Ding.wav";
                    }
                    else
                    {
                        if (iCount_NonAckAll > 0)
                        {
                            brBk = new SolidColorBrush(Colors.Orange);
                        }
                        else
                        {
                            brBk = new SolidColorBrush(Colors.Green);
                        }
                    }
                    brFore = new SolidColorBrush(Colors.White);

                    dFontSize = 11;

                    break;
                }

                default:
                {
                    sCnt = "???";
                    break;
                }
                }
            }
            catch (Exception e)
            {
                //Do not generate too many err files...
                RscStore.AddSysEvent(e, "Tile_Info_Title_Createion_Error");

                sErr = e.Message + "\r\n" + e.StackTrace;
                sCnt = "ERR!";
            }

            return(sCnt);
        }
        public override string GetInfo(bool bForSysTile, string sIcoId, out Brush brBk, out Brush brFore,
                                       out double dFontSize, out string sErr,
                                       out string sNotiTitle, out string sNotiContent, out string sNotiSound,
                                       bool bCalledByAgent, object oAgentParam, out string sInfoToChngChk)
        {
            brBk      = null;
            brFore    = null;
            dFontSize = 0;
            sErr      = "";

            sNotiTitle   = "";
            sNotiContent = "";
            sNotiSound   = "";

            sInfoToChngChk = "";

            string sCnt = "";

            try
            {
                switch (sIcoId)
                {
                case "sysTm":
                {
                    DateTime dNow = DateTime.Now;
                    sCnt += RscUtils.pad60(dNow.Hour) +
                            ":" + RscUtils.pad60(dNow.Minute);

                    if (bForSysTile)
                    {
                        sCnt += "\n\n(as of)";
                    }
                    else
                    {
                        sCnt += "\n:" + RscUtils.pad60(dNow.Second);
                    }

                    break;
                }

                case "sysDtFull":
                {
                    DateTime dNow = DateTime.Now;
                    sCnt += dNow.Year.ToString() +
                            ".\n" + RscUtils.pad60(dNow.Month) + "." +
                            RscUtils.pad60(dNow.Day) + ".";
                    break;
                }

                case "sysDtDay":
                {
                    DateTime dNow = DateTime.Now;
                    sCnt += RscUtils.pad60(dNow.Day) + ". ";
                    switch (dNow.DayOfWeek)
                    {
                    case DayOfWeek.Monday: sCnt += "H"; break;

                    case DayOfWeek.Tuesday: sCnt += "K"; break;

                    case DayOfWeek.Wednesday: sCnt += "Sze"; break;

                    case DayOfWeek.Thursday: sCnt += "Cs"; break;

                    case DayOfWeek.Friday: sCnt += "P"; break;

                    case DayOfWeek.Saturday: sCnt += "Szo"; break;

                    case DayOfWeek.Sunday: sCnt += "V"; break;
                    }

                    sCnt += "\n" + RscUtils.pad60(RscUtils.WeekOfYearHU(dNow)) + ". hét";
                    break;
                }

                case "sysFsFree":
                {
                    string sIsoStoreDrive = "";
                    long   lFree          = RscStore.AvailableFreeSpace(out sIsoStoreDrive);

                    sCnt += RscUtils.toMBstr(lFree, true);

                    if (sIsoStoreDrive.Length > 0)
                    {
                        sCnt = sIsoStoreDrive + "\n" + sCnt;
                    }

                    sNotiTitle   = "Free Space";
                    sNotiContent = sCnt.Replace('\n', ' ');

                    sInfoToChngChk = RscUtils.toMBstr(lFree, true, false, 1);

                    break;
                }

                case "sysBatPow":
                {
                    sCnt += Windows.Phone.Devices.Power.Battery.GetDefault().RemainingChargePercent.ToString() + " %";

                    if (Microsoft.Phone.Info.DeviceStatus.PowerSource == Microsoft.Phone.Info.PowerSource.Battery)
                    {
                        sCnt += "";                                 //"\n\nBATT";
                    }
                    else
                    {
                        sCnt += "\n\nCHRG";
                    }

                    if (Windows.Phone.Devices.Power.Battery.GetDefault().RemainingChargePercent >= 100 &&
                        Microsoft.Phone.Info.DeviceStatus.PowerSource != Microsoft.Phone.Info.PowerSource.Battery)
                    {
                        brBk   = new SolidColorBrush(Colors.Red);
                        brFore = new SolidColorBrush(Colors.White);

                        sNotiTitle   = "Battery Charge";
                        sNotiContent = sCnt.Replace('\n', ' ');

                        //sNotiSound = /*"/Lib_Rsc;component/" +*/ "Media/BociBociTarka.wav";
                        sNotiSound = /*"/Lib_Rsc;component/" +*/ "Media/DingDing.wav";
                    }

                    break;
                }

                case "sysCellNet":
                {
                    dFontSize = 11;

                    string sCmo = DeviceNetworkInformation.CellularMobileOperator;
                    for (int i = 0; i < 1; i++)
                    {
                        int iPos = sCmo.IndexOf(' ');
                        if (iPos < 0)
                        {
                            sCmo += "\n";
                            //if( i == 0 ) sCmo += "\n";
                            break;
                        }

                        sCmo = sCmo.Substring(0, iPos) + "\n" + sCmo.Substring(iPos + 1);
                    }

                    sCnt += sCmo + "\n";

                    if (DeviceNetworkInformation.IsCellularDataEnabled)
                    {
                        sCnt += "d(ata) ON";
                    }
                    else
                    {
                        sCnt += "d(ata) OFF";
                    }
                    sCnt += "\n";

                    if (DeviceNetworkInformation.IsCellularDataRoamingEnabled)
                    {
                        sCnt += "d roam ON";
                    }
                    else
                    {
                        sCnt += "d roam OFF";
                    }

                    break;
                }

                case "sysCnt_Note":
                {
                    int iCount = 0;

                    RscStore store = new RscStore();

                    if (store.FolderExists("A:\\Documents\\Notes"))
                    {
                        string[] fles = store.GetFileNames("A:\\Documents\\Notes", "*.txt");
                        iCount = fles.Length;
                    }

                    brBk   = new SolidColorBrush(Color.FromArgb(255, 252, 244, 178));
                    brFore = new SolidColorBrush(Colors.Black);
                    sCnt  += iCount.ToString() + "\n\nnotes";

                    break;
                }

                case "sysCnt_Anni":
                {
                    int iCntRed    = 0;
                    int iCntOrange = 0;
                    int iCntGreen  = 0;
                    int iCntBlue   = 0;
                    int iCntGray   = 0;

                    RscStore store = new RscStore();

                    if (store.FolderExists("A:\\Documents\\Dates"))
                    {
                        string[] fles = RscSort.OrderBy(store.GetFileNames("A:\\Documents\\Dates", "*.txt"));
                        foreach (string sFle in fles)
                        {
                            bool   bTmp;
                            string sDate = store.ReadTextFile("A:\\Documents\\Dates" + "\\" + sFle, "", out bTmp);

                            if (sDate.Length == 0)
                            {
                                continue;
                            }

                            DateTime dtNow = DateTime.Now;
                            string   sYnow = dtNow.Year.ToString();
                            string   sMnow = dtNow.Month.ToString();

                            int iCyc = 0;
                            for (iCyc = 0; iCyc < 2; iCyc++)
                            {
                                string sY;
                                string sM;
                                string sD;

                                bool bAnniver = (sDate.Substring(2, 1) == ".");
                                if (bAnniver)
                                {
                                    if (sDate.Length == 3)
                                    {
                                        sY = sYnow;
                                        sM = sMnow;
                                        sD = sDate.Substring(0, 2);

                                        //FIX...
                                        //sMnow = (dtNow.Month + 1).ToString();
                                        if (dtNow.Month >= 12)
                                        {
                                            sMnow = "1";
                                            sYnow = (dtNow.Year + 1).ToString();
                                        }
                                        else
                                        {
                                            sMnow = (dtNow.Month + 1).ToString();
                                        }
                                    }
                                    else
                                    {
                                        sY = sYnow;
                                        sM = sDate.Substring(0, 2);
                                        sD = sDate.Substring(3, 2);

                                        sYnow = (dtNow.Year + 1).ToString();
                                    }
                                }
                                else
                                {
                                    sY = sDate.Substring(0, 4);
                                    sM = sDate.Substring(5, 2);
                                    sD = sDate.Substring(8, 2);
                                }

                                int iY = 1901; Int32.TryParse(sY, out iY);                                        //parseInt(sY);
                                int iM = 1; Int32.TryParse(sM, out iM);                                           //parseInt(sM);
                                int iD = 1; Int32.TryParse(sD, out iD);                                           //parseInt(sD);

                                dtNow = DateTime.Now;
                                DateTime dt1 = new DateTime(dtNow.Year, dtNow.Month, dtNow.Day);
                                DateTime dt2 = new DateTime(iY, iM, iD);

                                //var dDiff = dt1.getTime() - dt2.getTime();
                                TimeSpan tsDiff = dt1 - dt2;
                                double   dDiff  = tsDiff.TotalMilliseconds;

                                double dDiffD = Math.Floor(dDiff / (1000 * 3600 * 24));

                                /*
                                 * double dDiffW;
                                 * if( dDiffD < 0 )
                                 * {
                                 *      dDiffW = Math.Round((dDiffD * -1) / 7, 0) * -1;
                                 * }
                                 * else
                                 * {
                                 *      dDiffW = Math.Round(dDiffD / 7, 0);
                                 * }
                                 */

                                if (bAnniver && (dDiffD > 7))
                                {
                                    continue;
                                }

                                /*
                                 * var sWtit = dDiffW.ToString() +
                                 *      "w " + (dDiffD - (dDiffW * 7)).ToString() + "d";
                                 */

                                if (bAnniver)
                                {
                                    if ((dDiffD * dDiffD) < 10)
                                    {
                                        iCntRed++;
                                    }
                                    else
                                    {
                                        if ((dDiffD * dDiffD) < 50)
                                        {
                                            iCntOrange++;
                                        }
                                        else
                                        {
                                            if ((dDiffD * dDiffD) < 197)
                                            {
                                                iCntGreen++;
                                            }
                                            else
                                            {
                                                iCntBlue++;
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    iCntGray++;
                                }
                            }
                        }
                    }

                    int    iCnt = 0;
                    string sMsg = "";
                    if (iCntRed > 0)
                    {
                        sMsg   = "+/- 3d";
                        iCnt   = iCntRed;
                        brBk   = new SolidColorBrush(Colors.Red);
                        brFore = new SolidColorBrush(Colors.White);
                    }
                    else if (iCntOrange > 0)
                    {
                        sMsg   = "+/- 1w";
                        iCnt   = iCntOrange;
                        brBk   = new SolidColorBrush(Colors.Orange);
                        brFore = new SolidColorBrush(Colors.White);
                    }
                    else if (iCntGreen > 0)
                    {
                        sMsg   = "2w";
                        iCnt   = iCntGreen;
                        brBk   = new SolidColorBrush(Colors.Green);
                        brFore = new SolidColorBrush(Colors.White);
                    }
                    else if (iCntBlue > 0)
                    {
                        sMsg = "> 2w";
                        iCnt = iCntBlue;
                        brBk = new SolidColorBrush(Colors.Blue);
                    }
                    else                             //if( iCntGray > 0 )
                    {
                        sMsg = "dates";
                        iCnt = /*iCntBlue +*/ iCntGray;

                        //Use default...
                        //brBk = new SolidColorBrush(Colors.Black);
                        //brFore = new SolidColorBrush( Colors.White );
                    }

                    sCnt += iCnt.ToString() + "\n\n" + sMsg;

                    sNotiTitle   = "Anniversary";
                    sNotiContent = sCnt.Replace('\n', ' ');

                    break;
                }

                case "sysCnt_WebDog":
                {
                    RscStore store = new RscStore();

                    if (store.FileExists("A:\\Documents\\WebDogUri.txt"))
                    {
                        DateTimeOffset dtf    = store.GetFileLastWriteTime("A:\\Documents\\WebDogUri.txt");
                        DateTime       dt     = dtf.DateTime;
                        DateTime       dtNow  = DateTime.Now;
                        TimeSpan       tsDiff = dtNow - dt;

                        bool   bTmp;
                        string sUri = store.ReadTextFile("A:\\Documents\\WebDogUri.txt", "", out bTmp);
                        if (sUri.Length > 0)
                        {
                            try
                            {
                                Uri    uri  = new Uri(sUri, UriKind.Absolute);
                                string sDns = uri.DnsSafeHost;

                                if (sDns.Length > 5)
                                {
                                    sDns  = sDns.Substring(0, 5);
                                    sDns += "...";
                                }

                                sCnt += sDns;
                            }
                            catch (Exception)
                            {
                            }
                        }
                        sCnt += "\n";

                        //sCnt = RscUtils.toDurationStr( tsDiff.Duration() );
                        if (Math.Floor(tsDiff.TotalDays) > 0)
                        {
                            brBk   = new SolidColorBrush(Colors.Red);
                            brFore = new SolidColorBrush(Colors.White);

                            sCnt += Math.Floor(tsDiff.TotalDays).ToString() + "\nday(s)";
                        }
                        else if (Math.Floor(tsDiff.TotalHours) > 0)
                        {
                            //Use Default...
                            //brBk = new SolidColorBrush( Colors.Black );
                            //brFore = new SolidColorBrush( Colors.White );

                            sCnt += Math.Floor(tsDiff.TotalHours).ToString() + "\nhour(s)";
                        }
                        else                                 //if( Math.Floor( tsDiff.TotalMinutes ) > 0 )
                        {
                            //Use Default...
                            //brBk = new SolidColorBrush( Colors.Black );
                            //brFore = new SolidColorBrush( Colors.White );

                            sCnt += Math.Floor(tsDiff.TotalMinutes).ToString() + "\nmin(s)";
                        }

                        /*
                         * else //if( Math.Floor( tsDiff.TotalSeconds ) > 0 )
                         * {
                         *      //Use Default...
                         *      //brBk = new SolidColorBrush( Colors.Black );
                         *      //brFore = new SolidColorBrush( Colors.White );
                         *
                         *      sCnt += Math.Floor( tsDiff.TotalSeconds ).ToString() + "\n\nsec(s)";
                         * }
                         */
                    }
                    else
                    {
                        if (bForSysTile)
                        {
                            //Use Default...
                            //brBk = new SolidColorBrush( Colors.Black );
                            //brFore = new SolidColorBrush( Colors.White );
                        }
                        else
                        {
                            brBk   = new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
                            brFore = new SolidColorBrush(Colors.Black);
                        }
                    }

                    break;
                }

                case "sysCnt_Event":
                {
                    int iCountErr = 0;
                    int iCountInf = 0;

                    RscStore store = new RscStore();

                    if (store.FolderExists("A:\\System\\Events"))
                    {
                        string[] fles = store.GetFileNames("A:\\System\\Events", "*.error");
                        iCountErr = fles.Length;

                        fles      = store.GetFileNames("A:\\System\\Events", "*.info");
                        iCountInf = fles.Length;

                        if (iCountErr > 0)
                        {
                            brBk   = new SolidColorBrush(Colors.Red);
                            brFore = new SolidColorBrush(Colors.White);
                        }
                        else if (iCountInf > 0)
                        {
                            brBk   = new SolidColorBrush(Colors.Blue);
                            brFore = new SolidColorBrush(Colors.White);
                        }
                        else
                        {
                            //Use Default...
                            //brBk = new SolidColorBrush( Colors.Black );
                            //brFore = new SolidColorBrush( Colors.White );
                        }
                    }

                    sCnt += iCountErr.ToString() + " err\n"
                            /*+ "\n"*/
                            + iCountInf.ToString() + " inf";

                    break;
                }

                case "sysCnt_PerDay":
                {
                    sCnt += "";

                    if (bForSysTile)
                    {
                        //Use Default...
                        //brBk = new SolidColorBrush( Colors.Black );
                        //brFore = new SolidColorBrush( Colors.White );
                    }
                    else
                    {
                        brBk   = new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
                        brFore = new SolidColorBrush(Colors.Black);
                    }

                    RscStore store = new RscStore();

                    if (store.FolderExists("A:\\Documents\\PerDay"))
                    {
                        bool   bTmp;
                        string sTx = store.ReadTextFile("A:\\Documents\\PerDay\\Default.txt", "", out bTmp);
                        if (sTx.Length > 0)
                        {
                            string [] aTx = sTx.Split('|');
                            if (aTx.Length == 5)
                            {
                                int iY = Int32.Parse(aTx[0]);
                                int iM = Int32.Parse(aTx[1]);
                                int iD = Int32.Parse(aTx[2]);

                                DateTime dtNow = DateTime.Now;

                                DateTime d1 = new DateTime(dtNow.Year, dtNow.Month, dtNow.Day);
                                DateTime d2 = new DateTime(iY, iM, iD);

                                TimeSpan ts    = d2 - d1;
                                int      iDays = Math.Max(1, (int)Math.Round(ts.TotalDays, 0));

                                double dAmo = double.Parse(aTx[3]);
                                if (dAmo != 0)
                                {
                                    int iRes = (int)Math.Round(dAmo / iDays, 0);

                                    string sUnit = "";
                                    if (aTx[4].Length > 0)
                                    {
                                        sUnit = " " + aTx[4];
                                    }

                                    sCnt += aTx[3] + sUnit + "\n"
                                            + /*(iY % 1000).ToString()*/ aTx[0] + "." + RscUtils.pad60(iM) + "." + RscUtils.pad60(iD) + "." + "\n"
                                            + "----------" + "\n"
                                            + iRes.ToString() + sUnit + "\n"
                                            + "/ day" + " (" + Math.Max(0, (int)Math.Round(ts.TotalDays, 0)).ToString() + ")";

                                    brBk   = new SolidColorBrush(Colors.Gray);
                                    brFore = new SolidColorBrush(Colors.White);

                                    dFontSize = 11;
                                }
                            }
                        }
                    }

                    break;
                }

                default:
                {
                    sCnt = "???";
                    break;
                }
                }
            }
            catch (Exception e)
            {
                //Do not generate too many err files...
                RscStore.AddSysEvent(e, "Tile_Info_Title_Createion_Error");

                sErr = e.Message + "\r\n" + e.StackTrace;
                sCnt = "ERR!";
            }

            return(sCnt);
        }
        public void DoUpdate(bool bCalledByAgent, object oAgentParam)
        {
            RscStore.AddSysEvent(DateTime.Now.ToString(), false, "ShellTiles_DoUpdate");

            var tiles = ShellTile.ActiveTiles;

            string sDbg = "";

            string sStCntFldr = RscKnownFolders.GetTempPath("ShellTiles", "Content");

            foreach (ShellTile tile in tiles)
            {
                if (sDbg.Length > 0)
                {
                    sDbg += "\r\n";
                }
                sDbg += tile.NavigationUri.OriginalString;

                try
                {
                    StandardTileData updatedData = new StandardTileData();

                    int iPos = tile.NavigationUri.OriginalString.IndexOf("IcoId=");
                    if (iPos < 0)
                    {
                        continue;
                    }
                    iPos += 6;
                    string sIcoId = tile.NavigationUri.OriginalString.Substring(iPos);

                    iPos = tile.NavigationUri.OriginalString.IndexOf("IcoGd=");
                    if (iPos < 0)
                    {
                        continue;
                    }
                    iPos += 6;
                    int iPos2 = tile.NavigationUri.OriginalString.IndexOf('&', iPos);
                    if (iPos2 < 0)
                    {
                        continue;
                    }
                    iPos2--;
                    string sIcoGd = tile.NavigationUri.OriginalString.Substring(iPos, (iPos2 - iPos) + 1);

                    /*
                     * DateTime dNow = DateTime.Now;
                     * string sTm =     RscUtils.pad60(dNow.Hour) +
                     *                              ":" + RscUtils.pad60(dNow.Minute); // + ":" + RscUtils.pad60(dNow.Second);
                     *
                     * updatedData.Title = RscUtils.pad60(dNow.Day) + ". " + sTm;
                     */

                    Brush  brBk           = null;
                    Brush  brFore         = null;
                    double dFontSize      = 0;
                    string sErr           = "";
                    string sNotiTitle     = "";
                    string sNotiContent   = "";
                    string sNotiSound     = "";
                    string sInfoToChngChk = "";

                    string sInfo = GetInfo(true, sIcoId, out brBk, out brFore, out dFontSize,
                                           out sErr, out sNotiTitle, out sNotiContent, out sNotiSound,
                                           bCalledByAgent, oAgentParam, out sInfoToChngChk);

                    if (sInfo == "")
                    {
                        sInfo = "\n\n(N/A)";
                    }
                    if (brBk == null)
                    {
                        brBk = new SolidColorBrush(Color.FromArgb(255, 32, 32, 32));                                        //Colors.Black );
                    }
                    if (brFore == null)
                    {
                        brFore = new SolidColorBrush(Colors.White);
                    }
                    if (dFontSize > 0)
                    {
                        dFontSize = cdFontSize - cdFontSize_SmDiff;
                    }
                    else
                    {
                        dFontSize = cdFontSize;
                    }
                    if (sInfoToChngChk.Length == 0)
                    {
                        sInfoToChngChk = sInfo;
                    }
                    if (sErr.Length > 0)
                    {
                        sDbg += "\r\nERROR: " + sErr;
                    }

                    RscStore store = new RscStore();

                    // //
                    //

                    string sInfoToChngChk_Old = store.ReadTextFile(sStCntFldr + "\\" + sIcoGd + ".txt", "");
                    if (sInfoToChngChk_Old.CompareTo(sInfoToChngChk) != 0)
                    {
                        if (sNotiTitle.Length > 0 && sNotiContent.Length > 0)
                        {
                            string sUriSnd = sNotiSound;
                            if (sUriSnd.Length == 0)
                            {
                                sUriSnd = /*"/Lib_Rsc;component/" +*/ "Media/empty.mp3";
                            }

                            ShellToast_Wp80U3.ShowToast(sNotiTitle, sNotiContent,
                                                        new Uri(sUriSnd, UriKind.Relative));
                        }

                        store.WriteTextFile(sStCntFldr + "\\" + sIcoGd + ".txt", sInfoToChngChk, true);
                    }

                    //
                    // //
                    //

                    string sInfo_Old = store.ReadTextFile(sStCntFldr + "\\" + sIcoGd + "(full).txt", "");
                    if (sInfo_Old.CompareTo(sInfo) == 0)
                    {
                        sDbg += " " + sIcoId + "|" + sIcoGd + " (NO UPDATE, NO CHANGE)";
                        continue;                         //No change!!!
                    }

                    string sTileImgPath = "A:\\Shared\\ShellContent";
                    store.CreateFolderPath(sTileImgPath);
                    sTileImgPath += "\\" + sIcoGd + ".jpg";
                    store.DeleteFile(sTileImgPath);
                    RenderText(sInfo, sTileImgPath, brBk, brFore, dFontSize);

                    string sImgUriFinal = "isostore:/" + sTileImgPath.Substring(3).Replace('\\', '/');
                    updatedData.BackgroundImage = new Uri(sImgUriFinal, UriKind.Absolute);

                    tile.Update(updatedData);

                    sDbg += " " + sIcoId + "|" + sIcoGd + " (Updated)";

                    store.WriteTextFile(sStCntFldr + "\\" + sIcoGd + "(full).txt", sInfo, true);

                    //
                    // //
                }
                catch (Exception e)
                {
                    sDbg += "\r\nERROR: " + e.Message + "\r\n" + e.StackTrace;
                }
            }

            RscStore.AddSysEvent(sDbg, false, "ShellTiles_DoUpdate_List");
        }