     // Called within an animation block when the dragging view is about to show.
     func tableView(tableView: UITableView, showDraggingView view: UIView, atIndexPath indexPath: NSIndexPath) {
         ChannelModel.sharedInstance.updatingAvailable = false
+        showPlayingIndicator(indexPath.row)
     }
     
     // Called within an animation block when the dragging view is about to hide.
     func tableView(tableView: UITableView, hideDraggingView view: UIView, atIndexPath indexPath: NSIndexPath) {
         ChannelModel.sharedInstance.updatingAvailable = true
+        removeIndicator(indexPath.row)
     }
     
     // MARK: -

        if let cell = videoTable.cellForRowAtIndexPath(path) as? VideoTableViewCell {
            cell.addPlayingIndicator()
        } else {
            print("No cell index[\(targetIndex)]")
        }
    }
    
    private func removeIndicator(targetIndex: Int) {
        let path = NSIndexPath.init(forRow: targetIndex, inSection: 0)
        if let cell = videoTable.cellForRowAtIndexPath(path) as? VideoTableViewCell {
            cell.removeAllIndicator()
        } else {
            print("No cell index[\(targetIndex)]")
        }
    }
    

    }
    
    func initVideoCell(indexPath: NSIndexPath) -> VideoTableViewCell {
        let cell = videoTable.dequeueReusableCellWithIdentifier(
            cellName, forIndexPath: indexPath) as! VideoTableViewCell
        if indexPath.row != ChannelModel.sharedInstance.currentIndex {
            cell.removeAllIndicator()
        } else {
            cell.addPlayingIndicator()
            videoPlayer.playerState() == YTPlayerState.Playing ? cell.startPlayingAnimation() : cell.stopPlayingAnimation()
        }
        return cell
    }
    
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
