|
|
@@ -69,6 +69,7 @@ import butterknife.BindView;
|
|
|
import butterknife.ButterKnife;
|
|
|
import butterknife.OnClick;
|
|
|
import rx.android.schedulers.AndroidSchedulers;
|
|
|
+import rx.functions.Action1;
|
|
|
import rx.schedulers.Schedulers;
|
|
|
|
|
|
import static com.sheep.jiuyan.samllsheep.utils.ClassFileHelper.DIR;
|
|
|
@@ -98,8 +99,7 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
|
|
|
private List<TaskState> stateList = new ArrayList<>();//状态列表
|
|
|
private TaskStateAdapter stateAdapter;
|
|
|
|
|
|
- private int type;//0,领取任务 1,开始试玩 2,开始下载 3,开始安装;4,信用卡跳转
|
|
|
- private boolean isDownLoad = false;//是否下载
|
|
|
+ private int type = -1;//0,领取任务 1,开始试玩 2,开始下载 3,开始安装;4,信用卡跳转
|
|
|
private String buttonStr = CommonUtil.GET_TASK;
|
|
|
private Activity activity;
|
|
|
|
|
|
@@ -107,7 +107,6 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
|
|
|
* 下载模块修改
|
|
|
*/
|
|
|
private DownloadTaskService mDownloadTaskService;
|
|
|
- DownLoadInfo downLoadInfo;
|
|
|
|
|
|
@Inject
|
|
|
TaskDialogPresenter preference;
|
|
|
@@ -128,7 +127,6 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
|
|
|
initDatas();
|
|
|
Aria.download(this).register();
|
|
|
mDownloadTaskService = new DownloadTaskService(this);
|
|
|
- downLoadInfo = mDownloadTaskService.getDownloadTaskByUrl(taskEty);
|
|
|
}
|
|
|
|
|
|
private void initDatas() {
|
|
|
@@ -139,7 +137,6 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
|
|
|
.into(dialogItemIconIv);
|
|
|
dialogItemNameTv.setText(taskEty.getName());
|
|
|
dialogItemSizeTv.setText( taskEty.getPackage_size() + "M");
|
|
|
- isDownLoad = PackageUtil.isAppInstalled(SheepApp.mContext, taskEty.getPackage_names());
|
|
|
|
|
|
preference.getTaskState(taskEty.getRelease_task_id());
|
|
|
|
|
|
@@ -199,19 +196,9 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
|
|
|
*/
|
|
|
private void startStask() {
|
|
|
DownloadTarget task = null;
|
|
|
- //Todo 暂时判断信用卡,也许以后会增加其他类型,服务器传过来
|
|
|
- if(taskEty.needDownloadApp()){
|
|
|
- if(TextUtils.isEmpty(taskEty.getDownload_link()) || !taskEty.getDownload_link().contains("http")){
|
|
|
- G.showToast(R.string.error_download_link);
|
|
|
- return;
|
|
|
- }
|
|
|
- task = Aria.download(this).load(taskEty.getDownload_link());
|
|
|
- }
|
|
|
-
|
|
|
- String filePath = DIR+ File.separator+taskEty.getPackage_names()+ ClassFileHelper.FILE_SUFFIX;
|
|
|
try{
|
|
|
switch (type){
|
|
|
- case 0://领取任务
|
|
|
+ case -1://领取任务
|
|
|
if(taskEty.getAcceptedTaskId() < 1){//没有正在进行的任务
|
|
|
acceptedTask();
|
|
|
} else {//先取消正在进行的任务
|
|
|
@@ -225,10 +212,18 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
|
|
|
|
|
|
}
|
|
|
break;
|
|
|
- case 1://开始试玩
|
|
|
+ case DownloadTaskService.STATUS_INSTALLED://开始试玩
|
|
|
toTestPlay();
|
|
|
break;
|
|
|
- case 2://开始下载
|
|
|
+ case DownloadTaskService.STATUS_INIT://开始下载
|
|
|
+ if(taskEty.needDownloadApp()){
|
|
|
+ if(TextUtils.isEmpty(taskEty.getDownload_link()) || !taskEty.getDownload_link().contains("http")){
|
|
|
+ G.showToast(R.string.error_download_link);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ task = Aria.download(this).load(taskEty.getDownload_link());
|
|
|
+ }
|
|
|
+ final DownLoadInfo downLoadInfo = mDownloadTaskService.getDownloadTaskByUrl(taskEty);
|
|
|
if(task != null) {
|
|
|
if (task.getTaskState() == IEntity.STATE_RUNNING) {
|
|
|
task.stop();
|
|
|
@@ -236,8 +231,6 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
|
|
|
task.cancel(true);
|
|
|
task.removeRecord();
|
|
|
} else {
|
|
|
-// task.setFilePath(filePath);
|
|
|
-// task.start();
|
|
|
mDownloadTaskService.start(downLoadInfo);
|
|
|
}
|
|
|
new Thread(new Runnable() {
|
|
|
@@ -252,27 +245,33 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
|
|
|
}
|
|
|
UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DOWNLOAD);
|
|
|
break;
|
|
|
- case 3://开始安装
|
|
|
- isDownLoad = PackageUtil.isAppInstalled(SheepApp.mContext, taskEty.getPackage_names());
|
|
|
- if(isDownLoad){
|
|
|
+ case DownloadTaskService.STATUS_FINISH://开始安装
|
|
|
+ final DownLoadInfo downLoadInfo1 = mDownloadTaskService.getDownloadTaskByUrl(taskEty);
|
|
|
+ boolean isInstalled = PackageUtil.isAppInstalled(SheepApp.mContext, taskEty.getPackage_names());
|
|
|
+ if(isInstalled){
|
|
|
if(taskEty.getTask_type() != 3){
|
|
|
start_task_tv.setText(CommonUtil.OPEN_APPLY);
|
|
|
}else {
|
|
|
start_task_tv.setText(CommonUtil.START_PLAY);
|
|
|
}
|
|
|
- type = 1;
|
|
|
+ type = DownloadTaskService.STATUS_INSTALLED;
|
|
|
toTestPlay();
|
|
|
return;
|
|
|
- }else if(!TextUtils.isEmpty(PackageUtil.isExistsFile(activity, taskEty.getPackage_names(), ""))){
|
|
|
- ApkUtils.installApk(activity, filePath);
|
|
|
+ }else if(!TextUtils.isEmpty(PackageUtil.isExistsFile(taskEty.getPackage_names()))){
|
|
|
+ ApkUtils.installApk(activity, PackageUtil.isExistsFile(taskEty.getPackage_names()));
|
|
|
}else{
|
|
|
+ if(taskEty.needDownloadApp()){
|
|
|
+ if(TextUtils.isEmpty(taskEty.getDownload_link()) || !taskEty.getDownload_link().contains("http")){
|
|
|
+ G.showToast(R.string.error_download_link);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ task = Aria.download(this).load(taskEty.getDownload_link());
|
|
|
+ }
|
|
|
if(task != null) {
|
|
|
task.cancel(true);
|
|
|
task.removeRecord();
|
|
|
-// task.setFilePath(filePath);
|
|
|
-// task.start();
|
|
|
- mDownloadTaskService.start(downLoadInfo);
|
|
|
- type = 2;
|
|
|
+ mDownloadTaskService.start(downLoadInfo1);
|
|
|
+ type = DownloadTaskService.STATUS_INIT;
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
@@ -316,10 +315,10 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
|
|
|
* 按钮状态
|
|
|
*/
|
|
|
private void setBtnState(){
|
|
|
- type = 0;
|
|
|
+ type = -1;
|
|
|
if(taskEty.getRunTask() == 0){//领取任务
|
|
|
buttonStr = CommonUtil.GET_TASK;
|
|
|
- type = 0;
|
|
|
+ type = -1;
|
|
|
}else if(taskEty.getTask_type() == 2){//信用卡业务
|
|
|
type = 4;
|
|
|
buttonStr = CommonUtil.START_TASK;
|
|
|
@@ -328,45 +327,20 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
|
|
|
type = 10;
|
|
|
buttonStr = CommonUtil.START_TASK;
|
|
|
dialogItemSizeTv.setVisibility(View.INVISIBLE);
|
|
|
- }
|
|
|
- else{
|
|
|
- //Todo 以后整理,现在加了个type=3
|
|
|
- if(isDownLoad && taskEty.getTask_type() != 3){
|
|
|
- buttonStr = CommonUtil.START_PLAY;;
|
|
|
- type = 1;
|
|
|
- } else {
|
|
|
- type = 2;
|
|
|
- DownloadTarget task = Aria.download(this).load(taskEty.getDownload_link());
|
|
|
- int taskState = task.getTaskState();
|
|
|
- switch (taskState){
|
|
|
- case IEntity.STATE_RUNNING:
|
|
|
- buttonStr = task.getPercent() +"%";
|
|
|
- break;
|
|
|
- case IEntity.STATE_STOP:
|
|
|
- buttonStr = CommonUtil.CONTINUE_DOWNLOAD;
|
|
|
- break;
|
|
|
- case IEntity.STATE_COMPLETE:
|
|
|
- isDownLoad = PackageUtil.isAppInstalled(SheepApp.mContext, taskEty.getPackage_names());
|
|
|
- if(isDownLoad){
|
|
|
- buttonStr = CommonUtil.START_PLAY;
|
|
|
- type = 1;
|
|
|
- }else if(!TextUtils.isEmpty(PackageUtil.isExistsFile(activity, taskEty.getPackage_names(), ""))){
|
|
|
- buttonStr = CommonUtil.START_INSTALL;
|
|
|
- type = 3;
|
|
|
- }else{
|
|
|
- task.cancel(true);
|
|
|
- task.removeRecord();
|
|
|
- buttonStr = CommonUtil.START_DOWNLOAD;
|
|
|
- }
|
|
|
- break;
|
|
|
- case IEntity.STATE_FAIL:
|
|
|
- buttonStr = CommonUtil.FAIL_DOWNLOAD;
|
|
|
- break;
|
|
|
- default:
|
|
|
- buttonStr = CommonUtil.START_DOWNLOAD;
|
|
|
- break;
|
|
|
+ }else{
|
|
|
+ TaskDetailAct.setBtnStr(taskEty, mDownloadTaskService, new Action1<Object>() {
|
|
|
+ @Override
|
|
|
+ public void call(Object o) {
|
|
|
+ if(o instanceof Integer){
|
|
|
+ type = (int) o;
|
|
|
+ } else if( o instanceof String){
|
|
|
+ start_task_tv.setText((String) o);
|
|
|
+ } else if( o instanceof Boolean){
|
|
|
+ start_task_tv.setEnabled((Boolean) o);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
+ });
|
|
|
+ return;
|
|
|
}
|
|
|
start_task_tv.setText(buttonStr);
|
|
|
}
|