Ejemplo n.º 1
0
 public void delDownTask(DownTask downTask) {
   // TODO Auto-generated method stub
   if (getPlayTaskUrl() != null && downTask.getMovieUrl().equals(getPlayTaskUrl()))
     return; // 正在播放不能删
   updateDownTaskNum(false);
   downTask.delete();
 }
Ejemplo n.º 2
0
 public void addJob(DownLoadInfo downInfo) {
   for (DownTask downTask : mDownTaskList)
     if (downTask.getMovieUrl().equals(downInfo.getDownUrl())) return;
   DownTask downTask = new DownTask(downInfo);
   mDownTaskList.add(downTask);
   startDown(downTask);
 }
Ejemplo n.º 3
0
 /** 暂停当前正在下载的任务 */
 public void pauseLoadingTask(String urlstr) {
   updateDownTaskNum(false);
   for (DownTask task : mDownTaskList) {
     if (task.getDownLoadInfo().getDownState() == DownTask.TASK_DOWNLOADING) {
       if (!task.getDownLoadInfo().getDownUrl().equals(urlstr)) // 排除当前播放电影下载任务
       task.waiting();
     }
   }
 }
Ejemplo n.º 4
0
 /** 网络引起全部暂停 */
 public void pauseAllTaskByError() {
   for (DownTask temp : mDownTaskList) {
     if (temp.getDownLoadInfo().getDownState() == DownTask.TASK_WAITING_DOWNLOAD
         || temp.getDownLoadInfo().getDownState() == DownTask.TASK_DOWNLOADING
         || temp.getDownLoadInfo().getDownState() == DownTask.TASK_RESUME_DOWNLOAD) {
       temp.pauseErr();
     }
   }
 }
Ejemplo n.º 5
0
 /** 自动恢复下载状态 */
 public void ResumeAllTask() {
   for (DownTask temp : mDownTaskList) {
     if (temp.getDownLoadInfo().getDownState() == DownTask.TASK_WIFI_ERROR) {
       temp.getDownLoadInfo().setDownState(DownTask.TASK_RESUME_DOWNLOAD);
       temp.waiting();
     }
   }
   autoDown();
 }
Ejemplo n.º 6
0
  /** 开启下个等待下载任务 */
  private void startDown(DownTask task) {

    if (canActivite()) {
      task.getDownLoadInfo().setDownState(DownTask.TASK_DOWNLOADING);
      task.start();
    } else {
      task.getDownLoadInfo().setDownState(DownTask.TASK_WAITING_DOWNLOAD);
      // task.waiting();
    }
  }
Ejemplo n.º 7
0
 public void delDownTask(String uri) {
   // TODO Auto-generated method stub
   DownTask downTask = getTaskByUrl(uri);
   if (downTask == null) {
     return;
   }
   updateDownTaskNum(false);
   downTask.delete();
   mDownTaskList.remove(downTask);
 }
Ejemplo n.º 8
0
  public void refreshFragment() {
    DownTask task = new DownTask();
    if (NetWorkUtil.isNetworkAvailable(getActivity())) {

      task.execute("http://jwcweb.jnu.edu.cn/index-new.asp");

    } else {
      setdefaultdata();
      Toast.makeText(getActivity(), "无网络连接", Toast.LENGTH_LONG).show();
    }
  }
Ejemplo n.º 9
0
 /** 更新未下载数量标识 */
 private void updateDownTaskNum(boolean isFirst) {
   if (mHandler == null || mDownTaskList == null) return;
   int num = 0;
   for (DownTask task : mDownTaskList) {
     if (task.getDownLoadInfo().getDownState() != DownTask.TASK_FINISHED) {
       num++;
     }
   }
   if (isFirst && num == 0) return;
   Message message = new Message();
   message.what = PipiPlayerConstant.BadgeView;
   message.obj = num;
   mHandler.sendMessage(message);
 }
Ejemplo n.º 10
0
  public List<String> getDownTaskListHashID() {
    // 获取所有hashid
    List<String> HashIDList = new ArrayList<String>(); // 将
    for (DownTask downTask : mDownTaskList) {
      if (!MD5Util.getFromHttpfilm(downTask.getMovieUrl())) {
        String ppfilmHashID = MD5Util.getMD5HashIDByUrl(downTask.getMovieUrl());
        if (ppfilmHashID != null) HashIDList.add(ppfilmHashID);
        else {
          return null; // 皮皮资源验证失败其中一个,则无法判断要删除的是哪个,中断操作
        }
      }
    }
    //   最近播放影片hashid
    String preMovie = sharedPreferences.getString("preMovie", null); // 上次影片
    if (preMovie != null && !MD5Util.getFromHttpfilm(preMovie)) {
      String ppfilmHashID = MD5Util.getMD5HashIDByUrl(preMovie);
      if (ppfilmHashID != null) HashIDList.add(ppfilmHashID);
      else return null;
    }

    return HashIDList;
  }
Ejemplo n.º 11
0
  /** 判断当前下载数是否超过下载限制数 */
  private boolean canActivite() {
    updateDownTaskNum(false);
    if (mDownTaskList.size() < MAX_THREAD_NUMS + 1) {
      return true;
    } else {
      int num = 0;
      for (DownTask task : mDownTaskList) {
        if (task.getDownLoadInfo().getDownState() == DownTask.TASK_DOWNLOADING
            || task.getDownLoadInfo().getDownState() == DownTask.TASK_FileMerge) { // 合并完在开启下个下载

          num++;
          if (num >= MAX_THREAD_NUMS) {
            break;
          }
        }
      }
      if (num < MAX_THREAD_NUMS) {
        return true;
      } else {
        return false;
      }
    }
  }
Ejemplo n.º 12
0
  public String startPlayTask2(final String ppfilmURL) {
    new Thread(
            new Runnable() { // 删除缓存
              public void run() {
                // TODO Auto-generated method stub
                FileUtils.deleteMovieFile(ppfilmURL);
              }
            })
        .start();

    for (DownTask downTask : mDownTaskList) {
      if (downTask.getMovieUrl().equals(ppfilmURL)) {
        if (downTask.getDownLoadInfo().getDownState() == DownTask.TASK_FINISHED) {
          // 下载完成 播放本地文件
          String localfilename = downTask.getDownLoadInfo().getDownPath();
          try {
            File file = new File(localfilename);
            if (file != null && file.exists()) {
              // 数据库存在,在检查文件是否被意外删除掉
              return "file://" + localfilename;
            } else break;
          } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
          }
        }
      }
    }

    // 销毁上一次播放下载任务
    if (playTask != null) playTask = null;

    // 开始播放下载任务
    playTask = new PlayTask(ppfilmURL);
    playTask.start();
    return playTask.getppfilmstr();
  }
Ejemplo n.º 13
0
  /** 自动开启任务判定的方法 */
  public void autoDown() {
    for (DownTask temp : mDownTaskList) {
      Boolean canActive = canActivite();

      if (!canActive) return; // 不存在将要下载的
      if (temp.getDownLoadInfo().getDownState() == DownTask.TASK_WAITING_DOWNLOAD) {
        temp.getDownLoadInfo().setDownState(DownTask.TASK_DOWNLOADING);
        temp.start();
        break;
      }

      if (canActive && temp.getDownLoadInfo().getDownState() == DownTask.TASK_RESUME_DOWNLOAD) {
        temp.getDownLoadInfo().setDownState(DownTask.TASK_RESUME_DOWNLOAD);
        temp.resume();
        break;
      }
    }
  }
Ejemplo n.º 14
0
 public boolean isExsitJob(String uri) {
   for (DownTask downTask : mDownTaskList) if (downTask.getMovieUrl().equals(uri)) return true;
   return false;
 }
Ejemplo n.º 15
0
 public void pauseDownTasks() {
   for (DownTask downTask : mDownTaskList) {
     downTask.getDownLoadInfo().setDownState(DownTask.TASK_PAUSE_DOWNLOAD);
   }
 }
Ejemplo n.º 16
0
 public void pauseDownTask(String uri) {
   // TODO Auto-generated method stub
   DownTask downTask = getTaskByUrl(uri);
   downTask.getDownLoadInfo().setDownState(DownTask.TASK_PAUSE_DOWNLOAD);
 }
Ejemplo n.º 17
0
  public void stopDownTasks() {

    for (DownTask downTask : mDownTaskList) {
      downTask.stop();
    }
  }
Ejemplo n.º 18
0
 public void stopUpdate() {
   for (DownTask task : mDownTaskList) {
     task.setHandler(null);
   }
 }
Ejemplo n.º 19
0
 // 是否所有文件已完成
 public boolean isAllDownTaskFinish() {
   for (DownTask downTask : mDownTaskList)
     if (downTask.getDownLoadInfo().getDownState() != DownTask.TASK_FINISHED) return false;
   return true;
 }