|
|
@@ -9,7 +9,11 @@ import android.widget.ImageView;
|
|
|
import android.widget.TextView;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.bumptech.glide.Glide;
|
|
|
+import com.kfzs.duanduan.utils.dlg.DeviceUtils;
|
|
|
+import com.sheep.gamegroup.model.entity.TaskEty;
|
|
|
+import com.sheep.gamegroup.presenter.TaskDialogPresenter;
|
|
|
import com.sheep.gamegroup.view.customview.SProgress;
|
|
|
import com.sheep.jiuyan.samllsheep.R;
|
|
|
import com.sheep.jiuyan.samllsheep.SheepApp;
|
|
|
@@ -24,6 +28,7 @@ import org.xutils.ex.DbException;
|
|
|
import org.xutils.x;
|
|
|
|
|
|
import java.io.File;
|
|
|
+import java.util.List;
|
|
|
|
|
|
|
|
|
/**
|
|
|
@@ -34,24 +39,41 @@ public class DownLoadTvAdp extends BaseAdapter {
|
|
|
private Context mContext;
|
|
|
private final LayoutInflater mInflater;
|
|
|
private DownloadManager downloadManager;
|
|
|
+ private List<DownloadInfo> infoList;
|
|
|
+ private int taskType;
|
|
|
+ TaskDialogPresenter preference;
|
|
|
+ private TaskEty task_entity;
|
|
|
|
|
|
- public DownLoadTvAdp(Context mContext) {
|
|
|
+ public DownLoadTvAdp(Context mContext,List<DownloadInfo> infoList) {
|
|
|
+ this.infoList = infoList;
|
|
|
this.mContext = mContext;
|
|
|
this.mInflater = LayoutInflater.from(mContext);
|
|
|
downloadManager = DownloadManager.getInstance();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param taskType
|
|
|
+ */
|
|
|
+ public void setTaskState(int taskType){
|
|
|
+ this.taskType = taskType;
|
|
|
+ }
|
|
|
+ public void addTaskPreference(TaskDialogPresenter preference){
|
|
|
+ this.preference = preference;
|
|
|
+ }
|
|
|
+ public void addTaskEty(TaskEty task_entity){
|
|
|
+ this.task_entity = task_entity;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public int getCount() {
|
|
|
- if (downloadManager == null)
|
|
|
- return 0;
|
|
|
- return downloadManager.getDownloadListCount();
|
|
|
+ return infoList.size();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public Object getItem(int i) {
|
|
|
- return downloadManager.getDownloadInfo(i);
|
|
|
+ return infoList.get(i);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -63,71 +85,51 @@ public class DownLoadTvAdp extends BaseAdapter {
|
|
|
@Override
|
|
|
public View getView(int i, View view, ViewGroup viewGroup) {
|
|
|
DownloadItemViewHolder holder = null;
|
|
|
- DownloadInfo downloadInfo = downloadManager.getDownloadInfo(i);
|
|
|
+ DownloadInfo downloadInfo = (DownloadInfo) getItem(i);
|
|
|
if (view == null) {
|
|
|
- view = mInflater.inflate(R.layout.down_item, null);
|
|
|
+ view = mInflater.inflate(R.layout.dowanload_tv_item, null);
|
|
|
holder = new DownloadItemViewHolder(view, downloadInfo);
|
|
|
view.setTag(holder);
|
|
|
} else {
|
|
|
holder = (DownloadItemViewHolder) view.getTag();
|
|
|
holder.update(downloadInfo);
|
|
|
}
|
|
|
- holder.refreshkem();
|
|
|
- if (downloadInfo.getState().value() < DownloadState.FINISHED.value()) {
|
|
|
- try {
|
|
|
- downloadManager.startDownload(
|
|
|
- downloadInfo.getPkgName(),
|
|
|
- downloadInfo.getUrl(),
|
|
|
- downloadInfo.getLabel(),
|
|
|
- downloadInfo.getFileSavePath(), "",
|
|
|
- downloadInfo.isAutoResume(),
|
|
|
- downloadInfo.isAutoRename(),
|
|
|
- holder);
|
|
|
- } catch (DbException ex) {
|
|
|
- Toast.makeText(x.app(), "添加下载失败", Toast.LENGTH_LONG).show();
|
|
|
+ if(taskType == 0){//开始任务
|
|
|
+ holder.start_task_tv.setText("开始任务");
|
|
|
+ }else {
|
|
|
+ holder.refreshkem();
|
|
|
+ if (downloadInfo.getState().value() < DownloadState.FINISHED.value()) {
|
|
|
+ try {
|
|
|
+ downloadManager.startDownload(
|
|
|
+ downloadInfo.getPkgName(),
|
|
|
+ downloadInfo.getUrl(),
|
|
|
+ downloadInfo.getLabel(),
|
|
|
+ downloadInfo.getFileSavePath(), "",
|
|
|
+ downloadInfo.isAutoResume(),
|
|
|
+ downloadInfo.isAutoRename(),
|
|
|
+ holder);
|
|
|
+ } catch (DbException ex) {
|
|
|
+ Toast.makeText(x.app(), "添加下载失败", Toast.LENGTH_LONG).show();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
return view;
|
|
|
}
|
|
|
|
|
|
class DownloadItemViewHolder extends DownloadViewHolder implements View.OnClickListener {
|
|
|
|
|
|
- private android.widget.ImageView ImageView;
|
|
|
- private TextView tv_game_name;
|
|
|
- private ImageView iv_state;
|
|
|
- private ImageView iv_remove;
|
|
|
- private SProgress pb_download;
|
|
|
- private TextView tv_prorgess;
|
|
|
- private View ll_install;
|
|
|
+ private TextView start_task_tv;
|
|
|
|
|
|
public DownloadItemViewHolder(View view, DownloadInfo downloadInfo) {
|
|
|
super(view, downloadInfo);
|
|
|
- ImageView = (ImageView) view.findViewById(R.id.img_icon);
|
|
|
- tv_game_name = (TextView) view.findViewById(R.id.tv_game_name);
|
|
|
- iv_state = (ImageView) view.findViewById(R.id.iv_state);
|
|
|
- pb_download = (SProgress) view.findViewById(R.id.pb_download);
|
|
|
- iv_remove = (ImageView) view.findViewById(R.id.iv_remove);
|
|
|
- tv_prorgess = (TextView) view.findViewById(R.id.tv_prorgess);
|
|
|
- ll_install = view.findViewById(R.id.ll_install);
|
|
|
- Glide.with(mContext)
|
|
|
- .load(downloadInfo.getIcon())
|
|
|
- .placeholder(R.drawable.icon)
|
|
|
- .dontAnimate()
|
|
|
- .into(ImageView);
|
|
|
- iv_state.setOnClickListener(this);
|
|
|
- iv_remove.setOnClickListener(this);
|
|
|
- tv_prorgess.setOnClickListener(this);
|
|
|
- ll_install.setOnClickListener(this);
|
|
|
+ start_task_tv = (TextView) view.findViewById(R.id.start_task_tv);
|
|
|
+ start_task_tv.setOnClickListener(this);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void update(DownloadInfo downloadInfo) {
|
|
|
super.update(downloadInfo);
|
|
|
- Glide.with(mContext)
|
|
|
- .load(downloadInfo.getIcon())
|
|
|
- .placeholder(R.drawable.icon)
|
|
|
- .dontAnimate()
|
|
|
- .into(ImageView);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -161,58 +163,48 @@ public class DownLoadTvAdp extends BaseAdapter {
|
|
|
}
|
|
|
|
|
|
public void refresh() {
|
|
|
- tv_game_name.setText(downloadInfo.getLabel());
|
|
|
- pb_download.setProgress(downloadInfo.getProgress());
|
|
|
- tv_prorgess.setText(downloadInfo.getProgress() + "%");
|
|
|
+ start_task_tv.setText(downloadInfo.getProgress() + "%");
|
|
|
DownloadState state = downloadInfo.getState();
|
|
|
switch (state) {
|
|
|
case WAITING:
|
|
|
case STARTED:
|
|
|
- iv_state.setImageResource(R.drawable.icon_stop);
|
|
|
+ start_task_tv.setText("继续");
|
|
|
break;
|
|
|
case ERROR:
|
|
|
case STOPPED:
|
|
|
- iv_state.setImageResource(R.drawable.icon_begin);
|
|
|
break;
|
|
|
case FINISHED:
|
|
|
- iv_state.setVisibility(View.GONE);
|
|
|
if (PackageUtil.isAppInstalled(mContext, getDownloadInfo().getPkgName())) {
|
|
|
- tv_prorgess.setText("已安装");
|
|
|
+ start_task_tv.setText("已安装");
|
|
|
} else {
|
|
|
- tv_prorgess.setText("安 装");
|
|
|
+ start_task_tv.setText("安 装");
|
|
|
PackageUtil.installApk(mContext, getDownloadInfo().getFileSavePath());
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
- iv_state.setImageResource(R.drawable.icon_begin);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void refreshkem() {
|
|
|
- tv_game_name.setText(downloadInfo.getLabel());
|
|
|
- pb_download.setProgress(downloadInfo.getProgress());
|
|
|
- tv_prorgess.setText(downloadInfo.getProgress() + "%");
|
|
|
+ start_task_tv.setText(downloadInfo.getProgress() + "%");
|
|
|
DownloadState state = downloadInfo.getState();
|
|
|
switch (state) {
|
|
|
case WAITING:
|
|
|
case STARTED:
|
|
|
- iv_state.setImageResource(R.drawable.icon_stop);
|
|
|
+ start_task_tv.setText("继续");
|
|
|
break;
|
|
|
case ERROR:
|
|
|
case STOPPED:
|
|
|
- iv_state.setImageResource(R.drawable.icon_begin);
|
|
|
break;
|
|
|
case FINISHED:
|
|
|
- iv_state.setVisibility(View.GONE);
|
|
|
if (PackageUtil.isAppInstalled(mContext, getDownloadInfo().getPkgName())) {
|
|
|
- tv_prorgess.setText("已安装");
|
|
|
+ start_task_tv.setText("已安装");
|
|
|
} else {
|
|
|
- tv_prorgess.setText("安 装");
|
|
|
+ start_task_tv.setText("安 装");
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
- iv_state.setImageResource(R.drawable.icon_begin);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -220,7 +212,11 @@ public class DownLoadTvAdp extends BaseAdapter {
|
|
|
@Override
|
|
|
public void onClick(View view) {
|
|
|
switch (view.getId()) {
|
|
|
- case R.id.iv_state:
|
|
|
+ case R.id.start_task_tv:
|
|
|
+ if(taskType == 0){
|
|
|
+ startTask();
|
|
|
+ return;
|
|
|
+ }
|
|
|
DownloadState state = downloadInfo.getState();
|
|
|
switch (state) {
|
|
|
case WAITING:
|
|
|
@@ -286,4 +282,10 @@ public class DownLoadTvAdp extends BaseAdapter {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ private void startTask(){
|
|
|
+ JSONObject object = new JSONObject();
|
|
|
+ object.put("device_id", new DeviceUtils(mContext).getIMEI()+"");
|
|
|
+ object.put("release_task_id", Integer.valueOf(task_entity.getRelease_task_id()+""));
|
|
|
+ preference.acceptedTask(object);
|
|
|
+ }
|
|
|
}
|