Example #1
0
        private async Task LoadFavoriteChannels()
        {
            StorageFile file = null;

            try { file = await ApplicationData.Current.LocalFolder.GetFileAsync("favorites.txt"); }
            catch { }

            if (file != null)
            {
                using (var reader = new StreamReader(await file.OpenStreamForReadAsync()))
                {
                    var favorites = await reader.ReadToEndAsync();

                    var array = favorites.Split(';');

                    foreach (var channel in AllChannels)
                    {
                        if (array.Contains(channel.Key))
                        {
                            FavoriteChannels.Add(channel);
                        }
                    }
                }
            }
        }
Example #2
0
 void sc_GetChannelsCompleted(object sender, GetChannelsCompletedEventArgs b)
 {
     if (b.Error == null)
     {
         if (b.Result != null)
         {
             foreach (Channel chn in b.Result)
             {
                 TextBlock tb = new TextBlock();
                 tb.Tag  = chn.id;
                 tb.Text = chn.name;
                 Border bo = new Border();
                 bo.Child = tb;
                 bo.HorizontalAlignment = HorizontalAlignment.Stretch;
                 bo.VerticalAlignment   = VerticalAlignment.Stretch;
                 bo.Width  = 150;
                 bo.Margin = new Thickness(0);
                 if (FavoriteChannels.Contains(chn.id))
                 {
                     bo.Background = new SolidColorBrush(Colors.Green);
                 }
                 channels.Items.Add(bo);
             }
         }
     }
 }
        public override void UpdateFavoriteRepo(string key, int channelId)
        {
            GetFavoriteFromRepo(key);

            if (FavoriteChannels.Contains(channelId))
            {
                FavoriteChannels.Remove(channelId);
            }
            else
            {
                FavoriteChannels.Add(channelId);
            }

            Source[key] = FavoriteChannels;
        }
        public override void UpdateFavoriteRepo(string key, int channelId)
        {
            GetFavoriteFromRepo(key);

            if (FavoriteChannels.Contains(channelId))
            {
                FavoriteChannels.Remove(channelId);
            }
            else
            {
                FavoriteChannels.Add(channelId);
            }

            lock (Astro.Assignment.Web.Statics.StaticObjects.CacheLockKey)
            {
                ClearFavoriteFromRepo(key);
                Source.Add(key, FavoriteChannels, DateTimeOffset.MaxValue);
            }
        }
Example #5
0
        public async Task LoadAllChannels(bool forceDownload = false)
        {
            AllChannels.Clear();
            FavoriteChannels.Clear();

            StorageFile file = null;

            try { file = await ApplicationData.Current.LocalFolder.GetFileAsync("channels.json"); }
            catch { }

            string data = null;

            if (file == null || forceDownload)
            {
                data = await ChannelsHelper.DownloadJson(ChannelsHelper.CHANNELS_URL);

                if (data != null)
                {
                    file = await ApplicationData.Current.LocalFolder.CreateFileAsync("channels.json", CreationCollisionOption.ReplaceExisting);

                    var writer = new StreamWriter(await file.OpenStreamForWriteAsync());
                    await writer.WriteAsync(data);

                    writer.Dispose();
                }
            }
            else
            {
                var reader = new StreamReader(await file.OpenStreamForReadAsync());
                data = await reader.ReadToEndAsync();

                reader.Dispose();
            }

            if (data == null)
            {
                return;
            }

            var channels = JsonConvert.DeserializeObject(data) as JContainer;

            foreach (var asset in ChannelsHelper.ChannelsAssets)
            {
                var item = new ChannelItem();
                item.Key    = asset.Key;
                item.Image  = asset.Value[0];
                item.Color1 = asset.Value[1];
                item.Color2 = asset.Value[2];

                var channel = channels.FirstOrDefault((element) => element["key"].Value <string>() == asset.Key);

                if (channel != null)
                {
                    item.ID          = channel.Value <int>("id");
                    item.Name        = channel.Value <string>("name");
                    item.Description = channel.Value <string>("description");
                }

                LoadChannelStreams(item);
                LoadTrackHistory(item);

                AllChannels.Add(item);
            }

            if (AllChannels.Count > 2)
            {
                AllChannels[0].Next = AllChannels[1];
                AllChannels[AllChannels.Count - 1].Prev = AllChannels[AllChannels.Count - 2];
            }

            for (int i = 1; i < AllChannels.Count - 1; i++)
            {
                AllChannels[i].Prev = AllChannels[i - 1];
                AllChannels[i].Next = AllChannels[i + 1];
            }

            await LoadFavoriteChannels();
        }
 public virtual bool IsFavoriteChannel(int channelId)
 {
     return(FavoriteChannels.Contains(channelId));
 }