@Override
  public void onDownloadComplete(DownloadItem item) {
    LOGD("download", "completed");
    String localPath = getLocalPath(item.getItemId());
    VideoItem videoItem = findItemByMediaId(item.getItemId());
    if (localPath != null && videoItem != null) {
      LocalAssetsManager.registerAsset(
          mContext,
          videoItem.config,
          videoItem.flavorId,
          localPath,
          new LocalAssetsManager.AssetRegistrationListener() {
            @Override
            public void onRegistered(String assetPath) {
              LOGD("download", "Register successful");
            }

            @Override
            public void onFailed(String assetPath, Exception error) {
              LOGD("download", "Register failed " + error.getMessage());
            }
          });
    }
    DownloadItemView view = getView(getItemPositionByMediaId(item.getItemId()));
    if (view != null) {
      view.bind(item);
    }
  }
 @Override
 public void onDownloadStop(DownloadItem item) {
   LOGD("onDownloadStop", "");
   DownloadItemView view = getView(getItemPositionByMediaId(item.getItemId()));
   if (view != null) {
     view.bind(item);
   }
 }
 @Override
 public void onProgressChange(DownloadItem item, long downloadedBytes) {
   LOGD("onProgressChange", "downloaded " + downloadedBytes);
   DownloadItemView view = getView(getItemPositionByMediaId(item.getItemId()));
   if (view != null) {
     view.bind(item);
   }
 }
 public void updateAll() {
   int itemId = 0;
   for (VideoItem videoItem : mVideoItems) {
     DownloadItemView itemView = (DownloadItemView) mParent.getChildAt(itemId);
     itemView.bind(videoItem);
     itemView.setItemId(itemId);
     itemView.setOnItemListener(this);
     itemId++;
   }
 }
 public void attachToParent(ViewGroup parent) {
   mParent = parent;
   parent.removeAllViews();
   int itemId = 0;
   for (VideoItem videoItem : mVideoItems) {
     DownloadItemView itemView = new DownloadItemView(parent.getContext());
     itemView.bind(videoItem);
     itemView.setItemId(itemId);
     itemView.setOnItemListener(this);
     parent.addView(itemView);
     itemId++;
   }
 }