예제 #1
0
        public void WorkerThread()
        {
            int processed = 1;
            foreach(LocalProgram program in Queue)
            {

                OnStart(program, Queue.Count - processed);

                RemoteProgramHelper remoteProgramHelper = new RemoteProgramHelper(null);
                remoteProgramHelper.OnDownloadProgress += delegate(float amountDone) {
                    OnProgress(program, amountDone);
                };

                remoteProgramHelper.OnDownloadFinished += delegate() {
                    OnEnd(program);
                };

                remoteProgramHelper.DownloadLocalProgram(program);

                processed ++;

            }

            OnNoMoreItems();
        }
 public void SetTempImage(RemoteProgramHelper program)
 {
     program.TempCell.ImageView.Image = ImageHelper.TempImage;
 }
            // Customize the appearance of table view cells.
            public override UITableViewCell GetCell(UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath)
            {
                string cellIdentifier = "Cell";
                var cell = tableView.DequeueReusableCell (cellIdentifier);
                if (cell == null) {
                    cell = new UITableViewCell (UITableViewCellStyle.Subtitle, cellIdentifier);
                }

                RemoteProgramHelper program = new RemoteProgramHelper(programs[indexPath.Row]);

                cell.TextLabel.Text = program.Program.Name;

                cell.DetailTextLabel.Text = program.Program.Description;
                cell.DetailTextLabel.Font = UIFont.SystemFontOfSize(IplayerConst.DetailTextLabelSize);

                if (program.DownloadedFileExists)
                {
                    cell.Accessory = UITableViewCellAccessory.Checkmark;
                } else {
                    cell.Accessory = UITableViewCellAccessory.DisclosureIndicator;
                }

                cell.ImageView.Alpha = 1.0f;
                GetImageForCell(cell, program);

                //cell.ImageView.Image = program.Image;
                return cell;
            }
            public void GetImageForCell(UITableViewCell cell, RemoteProgramHelper program)
            {
                if (program.HasImage)
                {
                    cell.ImageView.Image = program.Image;
                    cell.ImageView.Alpha = 1.0f;
                    return;
                }

                program.TempCell = cell;
                SetTempImage(program);
                ThreadPool.QueueUserWorkItem(RequestImage, program);
            }
            public void DisplayImage(RemoteProgramHelper program)
            {
                program.TempCell.ImageView.Image = program.Image;

                //UIView.BeginAnimations("imageThumbnailTransitionIn");
                //UIView.SetAnimationDuration(0.5f);

                program.TempCell.ImageView.Alpha = 1.0f;
                program.TempCell.SetNeedsDisplay();
                //UIView.CommitAnimations();

                program.TempCell = null;
            }