|
|
@@ -3,6 +3,7 @@ package com.sheep.gamegroup.view.activity;
|
|
|
import android.app.Activity;
|
|
|
import android.os.Build;
|
|
|
import android.os.Bundle;
|
|
|
+import android.preference.DialogPreference;
|
|
|
import android.support.annotation.Nullable;
|
|
|
import android.support.annotation.RequiresApi;
|
|
|
import android.view.View;
|
|
|
@@ -12,15 +13,32 @@ import android.webkit.WebView;
|
|
|
import android.webkit.WebViewClient;
|
|
|
import android.widget.ImageView;
|
|
|
import android.widget.TextView;
|
|
|
+import android.widget.Toast;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.bumptech.glide.Glide;
|
|
|
import com.sheep.gamegroup.model.entity.TaskEty;
|
|
|
+import com.sheep.gamegroup.presenter.TaskDialogContract;
|
|
|
+import com.sheep.gamegroup.presenter.TaskDialogPresenter;
|
|
|
+import com.sheep.gamegroup.util.Jump2View;
|
|
|
import com.sheep.gamegroup.view.customview.SProgress;
|
|
|
import com.sheep.jiuyan.samllsheep.R;
|
|
|
import com.sheep.jiuyan.samllsheep.SheepApp;
|
|
|
+import com.sheep.jiuyan.samllsheep.base.BaseActivity;
|
|
|
+import com.sheep.jiuyan.samllsheep.download.DownloadInfo;
|
|
|
import com.sheep.jiuyan.samllsheep.download.DownloadManager;
|
|
|
+import com.sheep.jiuyan.samllsheep.download.DownloadState;
|
|
|
+import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
|
|
|
import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
|
|
|
|
|
|
+
|
|
|
+import org.xutils.ex.DbException;
|
|
|
+import org.xutils.x;
|
|
|
+
|
|
|
+import java.io.File;
|
|
|
+
|
|
|
+import javax.inject.Inject;
|
|
|
+
|
|
|
import butterknife.BindView;
|
|
|
import butterknife.ButterKnife;
|
|
|
import butterknife.OnClick;
|
|
|
@@ -30,7 +48,7 @@ import butterknife.OnClick;
|
|
|
* Created by ljy on 2018/3/20.
|
|
|
*/
|
|
|
|
|
|
-public class DialogActivity extends Activity {
|
|
|
+public class DialogActivity extends Activity implements TaskDialogContract.View {
|
|
|
|
|
|
@BindView(R.id.dialog_item_icon_iv)
|
|
|
ImageView dialogItemIconIv;
|
|
|
@@ -49,17 +67,27 @@ public class DialogActivity extends Activity {
|
|
|
private TaskEty task_entity;
|
|
|
|
|
|
private DownloadManager downloadManager;
|
|
|
+ DownloadInfo downloadInfo;
|
|
|
+ private int type;//0,开始任务 1,开始试玩 2,开始下载
|
|
|
+ private boolean isDownLoad = false;//是否下载
|
|
|
+ private String buttonStr = "开始任务";//是否下载
|
|
|
+ private Activity activity;
|
|
|
+
|
|
|
+
|
|
|
+ @Inject
|
|
|
+ TaskDialogPresenter preference;
|
|
|
|
|
|
@Override
|
|
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
|
setContentView(R.layout.download_item_dialog);
|
|
|
ButterKnife.bind(this);
|
|
|
- initView();
|
|
|
- initData();
|
|
|
+ activity = this;
|
|
|
+ initViews();
|
|
|
+ initDatas();
|
|
|
}
|
|
|
|
|
|
- private void initData() {
|
|
|
+ private void initDatas() {
|
|
|
downloadManager = DownloadManager.getInstance();
|
|
|
webview.loadUrl(task_entity.getBoot_address());
|
|
|
Glide.with(this)
|
|
|
@@ -69,21 +97,25 @@ public class DialogActivity extends Activity {
|
|
|
.into(dialogItemIconIv);
|
|
|
dialogItemNameTv.setText(task_entity.getTask_name());
|
|
|
dialogItemSizeTv.setText( task_entity.getPackage_size() + "M");
|
|
|
+ isDownLoad = PackageUtil.isAppInstalled(SheepApp.mContext, task_entity.getPackage_names());
|
|
|
if (PackageUtil.isAppInstalled(SheepApp.mContext, task_entity.getPackage_names())) {
|
|
|
- startStaskSprogress.setProgress(100);
|
|
|
+// startStaskSprogress.setProgress(100);
|
|
|
+
|
|
|
} else {
|
|
|
- startStaskSprogress.setProgress(0);
|
|
|
+// startStaskSprogress.setProgress(0);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
- private void initView() {
|
|
|
+ private void initViews() {
|
|
|
+
|
|
|
+// startStaskSprogress.setVisibility(View.GONE);
|
|
|
task_entity = (TaskEty) getIntent().getSerializableExtra("task_entity");
|
|
|
if (task_entity == null) {
|
|
|
finish();
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+ setBtnState();
|
|
|
webview.setWebChromeClient(new WebChromeClient() {
|
|
|
|
|
|
});
|
|
|
@@ -99,16 +131,146 @@ public class DialogActivity extends Activity {
|
|
|
|
|
|
}
|
|
|
|
|
|
- @OnClick({R.id.doalog_item_get_rewards_tv, R.id.dialog_item_x, R.id.start_task_tv})
|
|
|
+ @OnClick({R.id.doalog_item_get_rewards_tv, R.id.dialog_item_x, R.id.start_task_tv, R.id.start_stask_sprogress})
|
|
|
public void onViewClicked(View view) {
|
|
|
switch (view.getId()) {
|
|
|
case R.id.doalog_item_get_rewards_tv:
|
|
|
+ Jump2View.getInstance()
|
|
|
+ .goWithdrawal(activity, null);
|
|
|
+ finish();
|
|
|
break;
|
|
|
case R.id.dialog_item_x:
|
|
|
finish();
|
|
|
break;
|
|
|
case R.id.start_task_tv:
|
|
|
+ startStask();
|
|
|
+ break;
|
|
|
+ case R.id.start_stask_sprogress:
|
|
|
+ DownloadState state = downloadInfo.getState();
|
|
|
+ switch (state) {
|
|
|
+ case WAITING:
|
|
|
+ case STARTED:
|
|
|
+ downloadManager.stopDownload(downloadInfo);
|
|
|
+ break;
|
|
|
+ case ERROR:
|
|
|
+ case STOPPED:
|
|
|
+ try {
|
|
|
+ downloadManager.startDownload(
|
|
|
+ downloadInfo.getPkgName(),
|
|
|
+ downloadInfo.getUrl(),
|
|
|
+ downloadInfo.getLabel(),
|
|
|
+ downloadInfo.getFileSavePath(), "",
|
|
|
+ downloadInfo.isAutoResume(),
|
|
|
+ downloadInfo.isAutoRename(),
|
|
|
+ null);
|
|
|
+ } catch (DbException ex) {
|
|
|
+ Toast.makeText(x.app(), "添加下载失败", Toast.LENGTH_LONG).show();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case FINISHED:
|
|
|
+ Toast.makeText(x.app(), "已经下载完成", Toast.LENGTH_LONG).show();
|
|
|
+ if(PackageUtil.isAppInstalled(activity, downloadInfo.getPkgName())){
|
|
|
+ PackageUtil.startApp(SheepApp.mContext, downloadInfo.getPkgName());
|
|
|
+ }else{
|
|
|
+ PackageUtil.installApk(activity, downloadInfo.getFileSavePath());
|
|
|
+ }
|
|
|
+
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 开始任务或者下载游戏、试玩
|
|
|
+ */
|
|
|
+ private void startStask() {
|
|
|
+ switch (type){
|
|
|
+ case 0://开始任务
|
|
|
+ JSONObject object = new JSONObject();
|
|
|
+ object.put("device_id", "");
|
|
|
+ object.put("release_task_id", task_entity.getRelease_task_id()+"");
|
|
|
+ preference.acceptedTask(object);
|
|
|
+ break;
|
|
|
+ case 1://开始试玩
|
|
|
+ toTestPlay();
|
|
|
break;
|
|
|
+ case 2://开始下载
|
|
|
+ downLoadApk();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 下载游戏
|
|
|
+ */
|
|
|
+ private void downLoadApk(){
|
|
|
+
|
|
|
+ start_task_tv.setVisibility(View.GONE);
|
|
|
+ startStaskSprogress.setVisibility(View.VISIBLE);
|
|
|
+ if (task_entity != null) {
|
|
|
+ ClassFileHelper.getInstance().createSDDirection();
|
|
|
+ File mApkPath = new File(ClassFileHelper.DIR, task_entity.getTask_name() + ClassFileHelper.FILE_SUFFIX);
|
|
|
+ if (!mApkPath.exists()) {
|
|
|
+ try {
|
|
|
+ downloadInfo = DownloadManager.getInstance().startDownloadOne(task_entity.getPackage_names(),
|
|
|
+ task_entity.getDownload_link(), task_entity.getTask_name(),
|
|
|
+ mApkPath.getAbsolutePath(), task_entity.getIcon(), true, false, null);
|
|
|
+ startStaskSprogress.setProgress(downloadInfo.getProgress());
|
|
|
+ } catch (DbException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ PackageUtil.installApk(getApplicationContext(), mApkPath.getAbsolutePath());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 去试玩
|
|
|
+ */
|
|
|
+ private void toTestPlay(){
|
|
|
+ PackageUtil.startApp(activity, task_entity.getPackage_names());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 按钮状态
|
|
|
+ */
|
|
|
+ private void setBtnState(){
|
|
|
+ type = 0;
|
|
|
+ if(task_entity.getRunTask() == 0){//开始任务
|
|
|
+ buttonStr = "开始任务";
|
|
|
+ type = 0;
|
|
|
+ }else{
|
|
|
+ if(isDownLoad){
|
|
|
+ buttonStr = "开始试玩";
|
|
|
+ type = 1;
|
|
|
+ }else {
|
|
|
+ buttonStr = "开始下载";
|
|
|
+ type = 2;
|
|
|
+ }
|
|
|
}
|
|
|
+ start_task_tv.setText(buttonStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void startTaskUpdataView(Object o) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void startTaskFailView(Object o) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void withdrawalUpdataView(Object o) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void withdrawalFailView(Object o) {
|
|
|
+
|
|
|
}
|
|
|
}
|