예제 #1
0
 /**
  * ************************************************************************************************************************
  */
 private void setViewData(Node node) {
   AdapterSimpleTree.ViewHolder v = mAdapter.getViewMap().get(node.getId());
   if (null == v) return;
   Long p = 100L;
   if (node.getStatus() != INode.STATUS_FINISH) {
     p = node.getProgress() * 100 / node.getMax();
   }
   v.pbTreeNode.setProgress(p.intValue());
   v.pbTreeNode.setMax(100);
   AdapterSimpleTree.refreshStatus(v.txtBtn, node.getStatus());
 }
예제 #2
0
 @Override
 public void onClick(Node node, int position) {
   if (!node.isLeaf()) {
     return;
   }
   if (node.isDownloadAll()) {
     EntityResType2 type2 = GlobalResTypes.ALL_TYPE2S_MAP.get(node.getParent().getId());
     List<EntityResType4> entitys = type2.getType4s();
     if (null != entitys) {
       if (node.isClickedDownloadAll()) {
         node.setClickedDownloadAll(false);
         refreshDownloadName(node);
         for (EntityResType4 entity : entitys) {
           node = mAdapter.getAllNodeMap().get(entity.getId());
           if (node.getStatus() == INode.STATUS_START
               || node.getStatus() == INode.STATUS_WAIT
               || node.getStatus() == INode.STATUS_CONNECTING) {
             node.setStatus(INode.STATUS_STOP);
             entity.setStatus(INode.STATUS_STOP);
             setViewData(node);
           }
         }
         GlobalResTypes.getInstance().stopAllQueueDownload();
         return;
       }
       node.setClickedDownloadAll(true);
       refreshDownloadName(node);
       for (EntityResType4 entity : entitys) {
         node = mAdapter.getAllNodeMap().get(entity.getId());
         if (node.getStatus() == INode.STATUS_NORMAL || node.getStatus() == INode.STATUS_STOP) {
           entity.setStatus(INode.STATUS_CONNECTING);
           node.setStatus(INode.STATUS_CONNECTING);
           setViewData(node);
           GlobalResTypes.getInstance().startDownload(node.getId());
         }
       }
     }
     return;
   }
   switch (node.getStatus()) {
     case INode.STATUS_NORMAL:
     case INode.STATUS_STOP:
       node.setStatus(INode.STATUS_CONNECTING);
       setViewData(node);
       GlobalResTypes.getInstance().startDownload(node.getId());
       break;
     case INode.STATUS_START:
       node.setStatus(INode.STATUS_STOP);
       setViewData(node);
       GlobalResTypes.getInstance().stopDownload(node.getId());
       break;
   }
 }
예제 #3
0
 @Override
 public void startHandler(String id, long max) {
   Node node = mAdapter.getAllNodeMap().get(id);
   node.setMax(max);
   node.setStatus(INode.STATUS_START);
   setViewData(node);
 }
예제 #4
0
 @Override
 public void stopHandler(String id, long progress, long max) {
   Node node = mAdapter.getAllNodeMap().get(id);
   node.setProgress(progress);
   node.setMax(max);
   node.setStatus(INode.STATUS_STOP);
 }
예제 #5
0
 @Override
 public void errorHandler(String id) {
   Node node = mAdapter.getAllNodeMap().get(id);
   node.setProgress(0L);
   node.setProgress(1L);
   node.setStatus(INode.STATUS_NORMAL);
   setViewData(node);
 }
예제 #6
0
 @Override
 public void progressHandler(String id, long progress, long max) {
   Node node = mAdapter.getAllNodeMap().get(id);
   if (node.getStatus() != INode.STATUS_START) {
     return;
   }
   node.setStatus(INode.STATUS_START);
   node.setProgress(progress);
   node.setMax(max);
   setViewData(node);
 }
예제 #7
0
 protected void refreshData() {
   // 检测type2s 数据是否已加载
   EntityResType2 t2 = null;
   List<EntityResType2> unfinishedType2s = new ArrayList<EntityResType2>();
   for (String key : GlobalResTypes.ALL_TYPE2S_MAP.keySet()) {
     t2 = GlobalResTypes.ALL_TYPE2S_MAP.get(key);
     if (!t2.isFinished()) unfinishedType2s.add(t2);
   }
   if (unfinishedType2s.size() > 0) {
     allDownloadType2Size = unfinishedType2s.size();
     showLoading(getString(R.string.loaddingTip2));
     GlobalResTypes.getInstance().setCallBackType2(callbackResDownload2);
     for (EntityResType2 entityResType2 : unfinishedType2s) {
       GlobalResTypes.getInstance().startDownload(entityResType2);
     }
     return;
   }
   String userLessonType1 = GlobalRes.getInstance().getBeans().getDefaultLessonId();
   EntityResType1 type1 = null;
   for (String key : GlobalResTypes.ALL_TYPE1S_MAP.keySet()) {
     type1 = GlobalResTypes.ALL_TYPE1S_MAP.get(key);
     if (type1.isBase() && !type1.getId().equals(userLessonType1)) {
       continue;
     }
     entitys.add(type1);
     for (EntityResType2 type2 : type1.getType2s()) {
       entitys.add(type2);
       for (EntityResType4 type4 : type2.getType4s()) {
         entitys.add(type4);
       }
     }
   }
   try {
     mAdapter = new AdapterSimpleTree(lvDownloads, this, entitys, 1);
     mAdapter.setOnTreeNodeClickListener(this);
     mAdapter.setCallback(this);
   } catch (Exception e) {
     e.printStackTrace();
   }
   lvDownloads.setAdapter(mAdapter);
 }
예제 #8
0
 @Override
 public void waitingHanler(String id) {
   Node node = mAdapter.getAllNodeMap().get(id);
   node.setStatus(INode.STATUS_WAIT);
   setViewData(node);
 }
예제 #9
0
 @Override
 public void finishedHandler(String id) {
   Node node = mAdapter.getAllNodeMap().get(id);
   node.setStatus(INode.STATUS_FINISH);
   setViewData(node);
 }
예제 #10
0
 private void refreshDownloadName(Node node) {
   AdapterSimpleTree.ViewHolder v = mAdapter.getViewMap().get(node.getId() + "_dl");
   node.setName(node.isClickedDownloadAll() ? "全部暂停" : "全部下载");
   if (null == v) return;
   v.txtTreeNodeLable.setText(node.getName());
 }