Bläddra i källkod

Merge branch 'sheep2.0' of http://10.8.230.114:3000/kemllor/small_sheep_android into sheep2.0

zengjiebin 8 år sedan
förälder
incheckning
d2c6d7e8a6

+ 16 - 0
app/src/main/java/com/sheep/gamegroup/di/components/TaskDialogComponent.java

@@ -0,0 +1,16 @@
+package com.sheep.gamegroup.di.components;
+
+import com.sheep.gamegroup.di.modules.TaskDialogModule;
+import com.sheep.gamegroup.di.scopes.UserScope;
+import com.sheep.gamegroup.view.activity.DialogActivity;
+
+import dagger.Component;
+
+/**
+ * Created by ljy on 2018/3/22.
+ */
+@UserScope
+@Component(modules = TaskDialogModule.class, dependencies = NetComponent.class)
+public interface TaskDialogComponent {
+    void inject(DialogActivity dialogActivity);
+}

+ 22 - 0
app/src/main/java/com/sheep/gamegroup/di/modules/TaskDialogModule.java

@@ -0,0 +1,22 @@
+package com.sheep.gamegroup.di.modules;
+
+import com.sheep.gamegroup.presenter.TaskDialogContract;
+
+import dagger.Module;
+import dagger.Provides;
+
+/**
+ * Created by ljy on 2018/3/22.
+ */
+@Module
+public class TaskDialogModule {
+    private TaskDialogContract.View view;
+
+    public TaskDialogModule(TaskDialogContract.View view) {
+        this.view = view;
+    }
+    @Provides
+    public TaskDialogContract.View provideView(){
+        return view;
+    }
+}

+ 6 - 0
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -97,6 +97,12 @@ public interface ApiService {
     Observable<BaseMessage> acceptedTask(@Query("page") int page, @Query("per_page") int per_page);
 
     /**
+     * 提交任务
+     */
+    @POST(V1 + "app/accepted_task/")
+    Observable<BaseMessage> acceptedTask(@Body JSONObject parame);
+
+    /**
      * 获取自己正在运行的任务
      */
     @GET(V1 + "/app/accepted_task/run_task/")

+ 19 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/TaskEty.java

@@ -21,6 +21,25 @@ public class TaskEty implements Serializable{
     private String update_time;// 0
     private String icon;
     private String package_size;
+    private String release_task_id;
+
+    public String getRelease_task_id() {
+        return release_task_id;
+    }
+
+    public void setRelease_task_id(String release_task_id) {
+        this.release_task_id = release_task_id;
+    }
+
+    private int runTask;//0,开始任务 1,开始试玩
+
+    public int getRunTask() {
+        return runTask;
+    }
+
+    public void setRunTask(int runTask) {
+        this.runTask = runTask;
+    }
 
     public String getPackage_size() {
         return package_size;

+ 21 - 0
app/src/main/java/com/sheep/gamegroup/presenter/TaskDialogContract.java

@@ -0,0 +1,21 @@
+package com.sheep.gamegroup.presenter;
+
+
+import com.alibaba.fastjson.JSONObject;
+
+/**
+ * Created by ljy on 2018/3/22.
+ */
+
+public interface TaskDialogContract {
+
+    interface Presenter{
+        void acceptedTask(JSONObject o);
+    }
+    interface View{
+        void startTaskUpdataView(Object o);
+        void startTaskFailView(Object o);
+        void withdrawalUpdataView(Object o);
+        void  withdrawalFailView(Object o);
+    }
+}

+ 56 - 0
app/src/main/java/com/sheep/gamegroup/presenter/TaskDialogPresenter.java

@@ -0,0 +1,56 @@
+package com.sheep.gamegroup.presenter;
+
+import com.sheep.gamegroup.model.api.ApiService;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.util.ExceptionHandle;
+import com.sheep.gamegroup.model.util.MySubscriber;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+
+
+import com.alibaba.fastjson.JSONObject;
+
+import javax.inject.Inject;
+
+import rx.schedulers.Schedulers;
+
+/**
+ * Created by ljy on 2018/3/22.
+ */
+
+public class TaskDialogPresenter implements TaskDialogContract.Presenter {
+    private ApiService apiService;
+    private TaskDialogContract.View view;
+
+    @Inject
+    public TaskDialogPresenter(ApiService apiService, TaskDialogContract.View view) {
+        this.apiService = apiService;
+        this.view = view;
+    }
+
+    @Override
+    public void acceptedTask(JSONObject o) {
+        apiService.acceptedTask(o)
+                .subscribeOn(Schedulers.io())
+                .subscribe(new MySubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(ExceptionHandle.ResponeThrowable throwable) {
+                        int statusCode = throwable.code;
+                        switch (statusCode){
+                            case ExceptionHandle.ERROR.BAD_REQUEST_ERROR://400
+                            default:
+                                try {
+                                    view.startTaskFailView(com.alibaba.fastjson.JSONObject.parseObject(throwable.message, BaseMessage.class));
+                                }catch (Exception e){
+                                    e.printStackTrace();
+                                }
+                                break;
+                        }
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        view.startTaskUpdataView(baseMessage);
+                    }
+                });
+    }
+}

+ 1 - 0
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -73,6 +73,7 @@ public class Jump2View {
      */
     public void goPhoneLoginView(Context context, Object o){
         Intent intent = new Intent(context, PhoneAct.class);
+        intent.putExtra("show_notice", (Boolean) o);
         context.startActivity(intent);
     }
 

+ 171 - 9
app/src/main/java/com/sheep/gamegroup/view/activity/DialogActivity.java

@@ -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) {
+
     }
 }

+ 1 - 2
app/src/main/java/com/sheep/gamegroup/view/activity/LoginAct.java

@@ -91,8 +91,7 @@ public class LoginAct extends BaseUMActivity implements LoginContract.View {
 
 
     private void goTelLogin() {
-        Intent intent = new Intent(this, PhoneAct.class);
-        startActivity(intent);
+        Jump2View.getInstance().goPhoneLoginView(LoginAct.this, false);
 //        finish();
     }
 

+ 41 - 28
app/src/main/java/com/sheep/gamegroup/view/activity/PhoneAct.java

@@ -23,13 +23,11 @@ import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.SelfCountDownTimer;
-import com.sheep.gamegroup.util.XXTEA;
+import com.sheep.jiuyan.samllsheep.BuildConfig;
+import com.sheep.jiuyan.samllsheep.Config;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseActivity;
-import com.sheep.jiuyan.samllsheep.page.LoginActivity;
-import com.sheep.jiuyan.samllsheep.page.MainActivity;
-import com.sheep.jiuyan.samllsheep.page.SplashActivity;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
@@ -59,12 +57,15 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
 
     @Inject
     PhonePresenter phonePresenter;
+    @BindView(R.id.phone_tip_tv)
+    TextView phoneTipTv;
 
     private SelfCountDownTimer selfCountDownTimer;
     private boolean canGetCaptchaPhone = true;
 
     private String etPhone;
     private String etCode;
+    private boolean showNotice = false;//false:手机登录,true:绑定手机
 
     @Override
     protected int getLayoutId() {
@@ -74,15 +75,16 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
     @Override
     public void initView() {
         activity = this;
+        showNotice = getIntent().getBooleanExtra("show_notice", false);
         TitleBarUtils
                 .getInstance()
-                .setTitle(this,"手机号登录")
+                .setTitle(this, "手机号登录")
                 .setTitleFinish(this);
         DaggerPhoneComponent.builder()
                 .netComponent(SheepApp.get(this).getNetComponent())
                 .phoneModule(new PhoneModule(this))
                 .build()
-        .inject(this);
+                .inject(this);
 //        testData();
     }
 
@@ -111,7 +113,13 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
 
     @Override
     public void initData() {
+        if (!showNotice) {
+            phoneTipTv.setVisibility(View.GONE);
+            phoneTipTv.setVisibility(View.GONE);
+        } else {
+            phoneTipTv.setVisibility(View.VISIBLE);
 
+        }
     }
 
     @Override
@@ -135,14 +143,14 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
                 getCaptcha();
                 break;
             case R.id.phone_sure_tv:
+                if(BuildConfig.DEBUG){
+                    goMain();
+                    return;
+                }
                 etPhone = phoneEtAccount.getText().toString().trim();
                 etCode = phoneEtCode.getText().toString().trim();
                 loginByPhoneGaptcha();
-                // TODO: 2018/3/22  测试界面,过后删除
-//                SpUtils.login(getApplicationContext(), "12@1c421522bb7e44d3cd6a8d59a54df182");
-//        startActivity(new Intent(this, ActMain.class));
-//                Jump2View.getInstance().goHomePageView(this, null);
-//                finish();
+
                 break;
         }
     }
@@ -158,6 +166,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
         }
         return true;
     }
+
     private boolean checkCodeInput() {
         if (TextUtils.isEmpty(etCode)) {
             G.showToast(getString(R.string.input_your_captcha));
@@ -173,12 +182,12 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
     /**
      * 获取验证码
      */
-    private void getCaptcha(){
+    private void getCaptcha() {
 
         if (!canGetCaptchaPhone) {
             return;
         }
-        if(!checkPhoneInput()){
+        if (!checkPhoneInput()) {
             return;
         }
         selfCountDownTimer.reset();
@@ -186,14 +195,15 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
         canGetCaptchaPhone = false;
         selfCountDownTimer.start();
     }
+
     /**
      * 登录
      */
-    private void loginByPhoneGaptcha(){
-        if(!checkPhoneInput()){
+    private void loginByPhoneGaptcha() {
+        if (!checkPhoneInput()) {
             return;
         }
-        if(!checkCodeInput()){
+        if (!checkCodeInput()) {
             return;
         }
 
@@ -210,19 +220,19 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
     @Override
     public void returnLogindata(Object o) {
         hideProgress();
-        if(o == null){
+        if (o == null) {
             return;
         }
         BaseMessage baseMessage = (BaseMessage) o;
 //        JSONObject a = JSON.parseObject(o.toString());
-        Log.e("------data",baseMessage.getData()+"");
+        Log.e("------data", baseMessage.getData() + "");
         LoginEntity loginEty = JSONObject.parseObject(JSONObject.toJSONString(baseMessage.getData()), LoginEntity.class);
         SpUtils.login(activity, loginEty.getToken());
         try {
             MyDbManager.getInstance().saveOrUpdateUser(loginEty.getUser());
             UserEntity userEntity = MyDbManager.getInstance().dbFindUser();
-            Log.e("------userEntity",userEntity.getNickname()+"|"+userEntity.getMobile()+"");
-            G.showToast(userEntity.getNickname()+"|"+userEntity.getMobile());
+            Log.e("------userEntity", userEntity.getNickname() + "|" + userEntity.getMobile() + "");
+            G.showToast(userEntity.getNickname() + "|" + userEntity.getMobile());
         } catch (DbException e) {
             e.printStackTrace();
         }
@@ -241,12 +251,15 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
     }
 
     private void goMain() {
-        Intent intent = new Intent(activity, PersonalCenterPresenter.class);
-        startActivity(intent);
+        // TODO: 2018/3/22  测试界面,过后删除
+                SpUtils.login(getApplicationContext(), "12@1c421522bb7e44d3cd6a8d59a54df182");
+//        startActivity(new Intent(this, ActMain.class));
+                Jump2View.getInstance().goHomePageView(this, null);
+                finish();
     }
 
-    private void testData(){
-        try{
+    private void testData() {
+        try {
             String data = "{\n" +
                     "  \"data\": {\n" +
                     "    \"token\": \"12@38948cb4b6e74079615b154a80e3054b\",\n" +
@@ -276,14 +289,14 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
             String showStr = "登录失败";
             Log.e("---login_-", data);
             JSONObject a = JSON.parseObject(data);
-            Log.e("------data",a.get("data")+"");
+            Log.e("------data", a.get("data") + "");
             LoginEntity loginEty = JSON.parseObject(a.get("data").toString(), LoginEntity.class);
             SpUtils.login(activity, loginEty.getToken());
             try {
                 MyDbManager.getInstance().saveOrUpdateUser(loginEty.getUser());
                 UserEntity userEntity = MyDbManager.getInstance().dbFindUser();
-                Log.e("------userEntity",userEntity.getNickname()+"|"+userEntity.getMobile()+"");
-                G.showToast(userEntity.getNickname()+"|"+userEntity.getMobile());
+                Log.e("------userEntity", userEntity.getNickname() + "|" + userEntity.getMobile() + "");
+                G.showToast(userEntity.getNickname() + "|" + userEntity.getMobile());
             } catch (DbException e) {
                 e.printStackTrace();
             }
@@ -298,7 +311,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
 //            Log.e("解密2--", XXTEA.bytes2HexStr(XXTEA.Encrypt(e1, XXTEA.KEY).getBytes("utf-8")));
 //            Log.e("解密3--", XXTEA.Decrypt(s1, XXTEA.KEY));
 //            Log.e("解密4--", XXTEA.Decrypt(s2, XXTEA.KEY));
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
         }
     }

+ 9 - 2
app/src/main/java/com/sheep/gamegroup/view/adapter/TryMakeMoneyAdp.java

@@ -15,6 +15,7 @@ import com.bumptech.glide.Glide;
 import com.sheep.gamegroup.model.entity.RecyleObj;
 import com.sheep.gamegroup.model.entity.RecyleType;
 import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
+import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.TaskReleaseEty;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ViewHolder;
@@ -87,7 +88,10 @@ public class TryMakeMoneyAdp extends AdbCommonRecycler<RecyleObj> {
                 view.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {
-                        Jump2View.getInstance().goDialogActivityView(context, etyList.get(i).getTask());
+                        TaskEty taskEty = etyList.get(i).getTask();
+                        taskEty.setRunTask(0);
+//                        taskEty.setRelease_task_id(etyList.getRelease_task_id());
+                        Jump2View.getInstance().goDialogActivityView(context, taskEty);
                     }
                 });
                 RecyclerView.ViewHolder viewHolder = new RecyclerView.ViewHolder(view) {
@@ -145,7 +149,10 @@ public class TryMakeMoneyAdp extends AdbCommonRecycler<RecyleObj> {
         holder.itemView.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                Jump2View.getInstance().goDialogActivityView(context, acceptedEty.getRelease_task().getTask());
+                TaskEty taskEty = acceptedEty.getRelease_task().getTask();
+                taskEty.setRunTask(1);
+                taskEty.setRelease_task_id(acceptedEty.getRelease_task_id());
+                Jump2View.getInstance().goDialogActivityView(context, taskEty);
             }
         });
     }

+ 66 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/download/DownloadManager.java

@@ -146,6 +146,7 @@ public final class DownloadManager {
         }
     }
 
+
     public void stopDownload(int index) {
         DownloadInfo downloadInfo = downloadInfoList.get(index);
         stopDownload(downloadInfo);
@@ -179,6 +180,71 @@ public final class DownloadManager {
         stopDownload(downloadInfo);
         downloadInfoList.remove(downloadInfo);
     }
+    public synchronized DownloadInfo startDownloadOne(String pkg, String url, String label, String savePath, String imageUrl,
+                                                   boolean autoResume, boolean autoRename,
+                                                   DownloadViewHolder viewHolder) throws DbException {
+
+        String fileSavePath = new File(savePath).getAbsolutePath();
+        DownloadInfo downloadInfo = db.selector(DownloadInfo.class)
+                .where("label", "=", label)
+                .and("fileSavePath", "=", fileSavePath)
+                .findFirst();
+        if (downloadInfo != null) {
+            DownloadCallback callback = callbackMap.get(downloadInfo);
+            if (callback != null) {
+                if (viewHolder == null) {
+                    viewHolder = new DefaultDownloadViewHolder(null, downloadInfo);
+                }
+                if (callback.switchViewHolder(viewHolder)) {
+                    return downloadInfo;
+                } else {
+                    callback.cancel();
+                }
+            }
+        }
+
+        // create download info
+        if (downloadInfo == null) {
+            downloadInfo = new DownloadInfo();
+            downloadInfo.setUrl(url);
+            downloadInfo.setAutoRename(autoRename);
+            downloadInfo.setAutoResume(autoResume);
+            downloadInfo.setLabel(label);
+            downloadInfo.setFileSavePath(fileSavePath);
+            downloadInfo.setIcon(imageUrl);
+            downloadInfo.setState(DownloadState.STARTED);
+            downloadInfo.setPkgName(pkg);
+            db.saveBindingId(downloadInfo);
+        }
+
+        // start downloading
+        if (viewHolder == null) {
+            viewHolder = new DefaultDownloadViewHolder(null, downloadInfo);
+        } else {
+            viewHolder.update(downloadInfo);
+        }
+        DownloadCallback callback = new DownloadCallback(viewHolder);
+        callback.setDownloadManager(this);
+        callback.switchViewHolder(viewHolder);
+        RequestParams params = new RequestParams(url);
+        params.setAutoResume(downloadInfo.isAutoResume());
+        params.setAutoRename(downloadInfo.isAutoRename());
+        params.setSaveFilePath(downloadInfo.getFileSavePath());
+        params.setExecutor(executor);
+        params.setCancelFast(true);
+        Callback.Cancelable cancelable = x.http().get(params, callback);
+        callback.setCancelable(cancelable);
+        callbackMap.put(downloadInfo, callback);
+
+        if (downloadInfoList.contains(downloadInfo)) {
+            int index = downloadInfoList.indexOf(downloadInfo);
+            downloadInfoList.remove(downloadInfo);
+            downloadInfoList.add(index, downloadInfo);
+        } else {
+            downloadInfoList.add(downloadInfo);
+        }
+        return downloadInfo;
+    }
 
 
 }

+ 7 - 7
app/src/main/res/drawable/x_shap_shadow_bg_rectgangle_white.xml

@@ -3,27 +3,27 @@
     <!--第一层-->
     <item>
         <shape>
-            <solid android:color="@color/white" />
+            <solid android:color="@color/white_DEDEDE" />
             <!--描边-->
             <stroke
                 android:width="1dp"
-                android:color="@color/white" />
+                android:color="@color/white_DEDEDE" />
 
             <corners android:radius="10dp" />
         </shape>
     </item>
     <!--第二层-->
     <item
-        android:left="2.66dp"
-        android:top="2.66dp"
-        android:bottom="2.66dp"
-        android:right="2.66dp">
+        android:left="1dp"
+        android:top="1dp"
+        android:bottom="1dp"
+        android:right="1dp">
         <shape>
             <solid android:color="@color/white" />
             <!--描边-->
             <stroke
                 android:width="0.33dp"
-                android:color="@color/white_DEDEDE" />
+                android:color="@color/white" />
 
             <corners android:radius="10dp" />
         </shape>

+ 4 - 3
app/src/main/res/layout/download_item_dialog.xml

@@ -62,7 +62,7 @@
                     android:layout_centerHorizontal="true"
                     android:layout_marginLeft="@dimen/content_padding_40"
                     android:layout_marginRight="@dimen/content_padding_40"
-                    android:layout_marginTop="@dimen/content_padding_15">
+                    android:layout_marginTop="@dimen/content_padding_15">`
 
                 </WebView>
 
@@ -106,7 +106,7 @@
                         app:startprogress="0"
                         app:textColor="#ffffffff"
                         app:textsize="18sp"
-                        android:visibility="gone"/>
+                        android:visibility="visible"/>
                 </LinearLayout>
 
                 <TextView
@@ -132,7 +132,8 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_alignParentRight="true"
-                android:src="@mipmap/try_dialog_x" />
+                android:src="@mipmap/try_dialog_x"
+                android:layout_margin="@dimen/content_padding"/>
         </RelativeLayout>
     </ScrollView>
 </RelativeLayout>

+ 1 - 1
app/src/main/res/values/gamegroup_styles.xml

@@ -84,6 +84,6 @@
         <item name="android:windowIsTranslucent">true</item><!--半透明-->
         <item name="android:windowNoTitle">true</item><!--无标题-->
         <item name="android:windowBackground">@android:color/transparent</item><!--背景透明-->
-        <item name="android:backgroundDimAmount">0.4</item><!--透明度 0.0f到1.0f之间。1.0完全不透明,0.0f完全透明-->
+        <item name="android:backgroundDimAmount">0.7</item><!--透明度 0.0f到1.0f之间。1.0完全不透明,0.0f完全透明-->
     </style>
 </resources>