Browse Source

修改任务各种状态为常量引用;
下载无响应修改为弹出下载方式选择框

zengjiebin 7 years ago
parent
commit
dbed9ba28a

+ 21 - 12
app/src/main/java/com/sheep/gamegroup/helper/TaskHelper.java

@@ -36,6 +36,15 @@ import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_APP;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_CHANG_SI;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_CREDIT_CARD;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_SHEEP;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_TECENT;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_XIAO_MI;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_H5;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_SUCCESSION;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_TIME;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_TASK;
 
 /**
@@ -174,7 +183,7 @@ public class TaskHelper {
         find_information_game_task0.setVisibility(View.GONE);
         find_information_game_yuan.setVisibility(View.VISIBLE);
         switch (taskEty.getTask_type()) {// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务
-            case 2://信用卡任务
+            case TASK_TYPE_CREDIT_CARD://信用卡任务
                 find_information_game_task.setVisibility(View.GONE);
                 find_information_game_task_end_time.setVisibility(View.GONE);
                 find_information_game_yuan.setGravity(Gravity.END);
@@ -191,14 +200,14 @@ public class TaskHelper {
                     }
                 });
                 break;
-            case 1001:
+            case TASK_TYPE_CHANG_SI:
                 break;
-            case 1://时间试玩任务
-            case 3://应用下载
-            case 4://h5业务
-            case 1000://连续任务
-            case 1002://游戏任务
-            case 1003://游戏任务
+            case TASK_TYPE_TIME://时间试玩任务
+            case TASK_TYPE_APP://应用下载
+            case TASK_TYPE_H5://h5业务
+            case TASK_TYPE_SUCCESSION://连续任务
+            case TASK_TYPE_GAME_SHEEP://游戏任务
+            case TASK_TYPE_GAME_TECENT://游戏任务
             default:
                 find_information_game_yuan.setGravity(Gravity.CENTER);
                 if (taskAcceptedEty != null) {
@@ -420,11 +429,11 @@ public class TaskHelper {
     //    private int task_type = 1;// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务 1002平台游戏,1003 腾讯游戏,1004 小米游戏
     private static String[] getTaskTypeTextColor(TaskEty task) {
         switch (task.getTask_type()) {
-            case 1002:
-            case 1003:
-            case 1004:
+            case TASK_TYPE_GAME_SHEEP:
+            case TASK_TYPE_GAME_TECENT:
+            case TASK_TYPE_GAME_XIAO_MI:
                 return new String[]{"游戏任务", "#4889FF"};//已经修改为一种颜色了
-            case 1000:
+            case TASK_TYPE_SUCCESSION:
                 return new String[]{"连续任务", "#4889FF"};
             default:
                 return new String[]{"试玩任务", "#4889FF"};

+ 13 - 9
app/src/main/java/com/sheep/gamegroup/model/entity/GameAccountEntity.java

@@ -4,6 +4,10 @@ import android.text.TextUtils;
 
 import java.io.Serializable;
 
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_SHEEP;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_TECENT;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_XIAO_MI;
+
 /**
  * 游戏账户
  * Created by ljy on 2018/7/10.
@@ -131,34 +135,34 @@ public class GameAccountEntity implements Serializable {
      */
     public String getDetailShow(){
         switch (task_type){
-            case 1002:
+            case TASK_TYPE_GAME_SHEEP:
             default:
                 return "平台游戏" + "--" + getTypeName();
-            case 1003:
+            case TASK_TYPE_GAME_TECENT:
                 return "腾讯游戏" + "--" + getTypeName();
-            case 1004:
+            case TASK_TYPE_GAME_XIAO_MI:
                 return "小米游戏" + "--" + getTypeName();
         }
     }
     public String getDetailShowForGameType(){
         switch (game_type){
-            case 1002:
+            case TASK_TYPE_GAME_SHEEP:
             default:
                 return "平台游戏" + "--" + getTypeName();
-            case 1003:
+            case TASK_TYPE_GAME_TECENT:
                 return "腾讯游戏" + "--" + getTypeName();
-            case 1004:
+            case TASK_TYPE_GAME_XIAO_MI:
                 return "小米游戏" + "--" + getTypeName();
         }
     }
     public String getDetailShowName(){
         switch (task_type){
-            case 1002:
+            case TASK_TYPE_GAME_SHEEP:
             default:
                 return "平台游戏";
-            case 1003:
+            case TASK_TYPE_GAME_TECENT:
                 return "腾讯游戏";
-            case 1004:
+            case TASK_TYPE_GAME_XIAO_MI:
                 return "小米游戏";
         }
     }

+ 26 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/TaskChild.java

@@ -1,12 +1,15 @@
 package com.sheep.gamegroup.model.entity;
 
 
+import android.support.annotation.IntDef;
 import android.text.TextUtils;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 
 import java.io.Serializable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.List;
 
 /**
@@ -238,4 +241,27 @@ public class TaskChild implements Serializable {
     public boolean isOldTask() {
         return descEntity == null && descEntityList == null;
     }
+
+
+//    1、 任务未开启时——即将开启
+//2、 任务未领取时——可领取
+//3、 任务已领取待完成时——进行中
+//4、 任务已提交待审核——待审核
+//5、 任务审核通过——已完成
+//6、 任务审核失败——审核失败
+//7、任务已过期未完成——已过期
+    //status 子任务状态
+    public static final int STATUS_WILL_OPEN = 1;
+    public static final int STATUS_CAN_RECEIVE = 2;
+    public static final int STATUS_RUNNING = 3;//进行中
+    public static final int STATUS_WAIT_INSPECT = 4;
+    public static final int STATUS_FINISHED = 5;
+    public static final int STATUS_FAIL= 6;//审核失败
+    public static final int STATUS_OUT_TIME = 7;
+
+
+    @IntDef({STATUS_RUNNING, STATUS_FAIL})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface STATUS {
+    }
 }

+ 80 - 41
app/src/main/java/com/sheep/gamegroup/model/entity/TaskEty.java

@@ -1,6 +1,5 @@
 package com.sheep.gamegroup.model.entity;
 
-import android.support.annotation.IntDef;
 import android.text.TextUtils;
 
 import com.alibaba.fastjson.JSONArray;
@@ -9,10 +8,12 @@ import com.sheep.gamegroup.model.api.IDownload;
 import com.sheep.gamegroup.util.ListUtil;
 
 import java.io.Serializable;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
 import java.util.List;
 
+import static com.sheep.gamegroup.model.entity.TaskChild.STATUS_CAN_RECEIVE;
+import static com.sheep.gamegroup.model.entity.TaskChild.STATUS_FAIL;
+import static com.sheep.gamegroup.model.entity.TaskChild.STATUS_RUNNING;
+
 /**
  * 任务
  * Created by ljy on 2018/3/20.
@@ -23,12 +24,12 @@ public class TaskEty implements Serializable, IDownload {
     private String create_time;// 0,
     private String download_link;//private String string",
     private int id;// 0,
-    private int inspect_type = 1;// 1自动审核 2手动审核 3,应用自动审核
+    private int inspect_type = INSPECT_TYPE_PERSION;// 1自动审核 2手动审核 3,应用自动审核
     private String package_names;//private String string",
     private String remarks;//private String string",
     private String task_name;//private String string",
     private String screenshots;//private String string",
-    private int task_type = 1;// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务 1002平台游戏,1003 腾讯游戏,1004 小米游戏,1006 小程序(关联字段-qr_code)
+    private int task_type = TASK_TYPE_TIME;// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务 1002平台游戏,1003 腾讯游戏,1004 小米游戏,1006 小程序(关联字段-qr_code)
     private int open_mode;//连续任务的打开方式 1:打开应用 2:H5内部 3:H5外部
     private String update_time;// 0
     private String icon;
@@ -344,11 +345,34 @@ public class TaskEty implements Serializable, IDownload {
      * @return
      */
     public boolean isAppAutoCommitTask(){
-        return inspect_type == 3;
+        return inspect_type == INSPECT_TYPE_SHEEP;
     }
 
+    //判断任务是否需要下载app
     public boolean needDownloadApp() {
-        return task_type != 2 && task_type != 4;//// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思
+        if(TextUtils.isEmpty(package_names)){//无包名情况下不能下载
+            return false;
+        }
+        if(TextUtils.isEmpty(download_link)){//无下载连接的任务不能下载
+            return false;
+        }
+        switch (task_type){//1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务 1002平台游戏,1003 腾讯游戏,1004 小米游戏
+            case TASK_TYPE_CREDIT_CARD:
+            case TASK_TYPE_H5:
+            case TASK_TYPE_APPLET:
+                return false;
+            case TASK_TYPE_SUCCESSION:
+                return open_mode == OPEN_MODE_TYPE_APP;// 1:打开应用 2:H5内部 3:H5外部
+            case TASK_TYPE_TIME:
+            case TASK_TYPE_APP:
+            case TASK_TYPE_CHANG_SI:
+            case TASK_TYPE_GAME_SHEEP:
+            case TASK_TYPE_GAME_TECENT:
+            case TASK_TYPE_GAME_XIAO_MI:
+            default:
+                return true;
+        }
+//        return task_type != TASK_TYPE_CREDIT_CARD && task_type != TASK_TYPE_H5;//// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思
     }
 
     /**
@@ -389,7 +413,7 @@ public class TaskEty implements Serializable, IDownload {
      * @return
      */
     public boolean isOldTask(){
-        if(task_type == 1000){
+        if(task_type == TASK_TYPE_SUCCESSION){
             if(!ListUtil.isEmpty(child)){
                 return child.get(0).isOldTask();
             }
@@ -405,7 +429,7 @@ public class TaskEty implements Serializable, IDownload {
      * @return
      */
     public boolean isGameTask() {
-        return task_type == 1002 || task_type == 1003 || task_type ==1004;
+        return task_type == TASK_TYPE_GAME_SHEEP || task_type == TASK_TYPE_GAME_TECENT || task_type == TASK_TYPE_GAME_XIAO_MI;
     }
 
 
@@ -433,12 +457,12 @@ public class TaskEty implements Serializable, IDownload {
      */
     public String getDetailShow(){
         switch (task_type){
-            case 1002:
+            case TASK_TYPE_GAME_SHEEP:
             default:
                 return "平台游戏";
-            case 1003:
+            case TASK_TYPE_GAME_TECENT:
                 return "腾讯游戏";
-            case 1004:
+            case TASK_TYPE_GAME_XIAO_MI:
                 return "小米游戏";
         }
     }
@@ -459,7 +483,7 @@ public class TaskEty implements Serializable, IDownload {
         if(!ListUtil.isEmpty(child)){
             for (TaskChild taskChild : child) {
                 switch (taskChild.getStatus()) {
-                    case 2:
+                    case STATUS_CAN_RECEIVE:
                         return taskChild.getId();
                 }
             }
@@ -482,7 +506,7 @@ public class TaskEty implements Serializable, IDownload {
         if(!ListUtil.isEmpty(child)){
             for (TaskChild taskChild : child) {
                 switch (taskChild.getStatus()) {
-                    case 3:
+                    case STATUS_RUNNING:
                         return taskChild.getId();
                 }
             }
@@ -514,14 +538,6 @@ public class TaskEty implements Serializable, IDownload {
         }
         return -1;
     }
-    public static final int STATUS_RUNNING = 3;//进行中
-    public static final int STATUS_FAIL= 6;//审核失败
-
-
-    @IntDef({STATUS_RUNNING, STATUS_FAIL})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface STATUS {
-    }
     /**
      * 根据状态获取当前第一个子任务
      *
@@ -534,7 +550,7 @@ public class TaskEty implements Serializable, IDownload {
      7、任务已过期未完成——已过期
      * @return
      */
-    public TaskChild getCanCommitChild(@STATUS int status) {
+    public TaskChild getCanCommitChild(@TaskChild.STATUS int status) {
         if(!ListUtil.isEmpty(child)){
             for (TaskChild taskChild : child) {
                 if(status == taskChild.getStatus()){
@@ -558,10 +574,10 @@ public class TaskEty implements Serializable, IDownload {
      */
     public int getCanCommitChildRelease_task_id() {
         //先找审核失败的子任务
-        TaskChild commitScreenShotTask = getCanCommitChild(TaskEty.STATUS_FAIL);
+        TaskChild commitScreenShotTask = getCanCommitChild(STATUS_FAIL);
         if(commitScreenShotTask == null){
             //再找进行中的子任务
-            commitScreenShotTask = getCanCommitChild(TaskEty.STATUS_RUNNING);
+            commitScreenShotTask = getCanCommitChild(STATUS_RUNNING);
         }
         return commitScreenShotTask == null ? -1 : commitScreenShotTask.getAlready_accepted_task_id();
     }
@@ -600,9 +616,9 @@ public class TaskEty implements Serializable, IDownload {
      */
     public boolean canCancelTask() {
         switch (task_type){
-            case 1000:
+            case TASK_TYPE_SUCCESSION:
                 TaskChild taskChild = ListUtil.getItem(child, 0);
-                return taskChild == null || taskChild.getStatus() == 3;
+                return taskChild == null || taskChild.getStatus() == STATUS_RUNNING;
             default:
                 return true;
         }
@@ -612,7 +628,7 @@ public class TaskEty implements Serializable, IDownload {
      * @return
      */
     public boolean isSuccession() {
-        return task_type == 1000;
+        return task_type == TASK_TYPE_SUCCESSION;
     }
 
     /**
@@ -620,7 +636,7 @@ public class TaskEty implements Serializable, IDownload {
      * @return
      */
     public boolean needShotScreen() {
-        if(inspect_type != 2){//非手动审核任务不需要上传截图
+        if(inspect_type != INSPECT_TYPE_PERSION){//非手动审核任务不需要上传截图
             return false;
         }
         if(TextUtils.isEmpty(package_names)){//无包名情况下也不能截屏
@@ -630,17 +646,18 @@ public class TaskEty implements Serializable, IDownload {
             return false;
         }
         switch (task_type){//1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务 1002平台游戏,1003 腾讯游戏,1004 小米游戏
-            case 2:
-            case 4:
-            case 1001:
-            case 1002:
-            case 1003:
-            case 1004:
+            case TASK_TYPE_CREDIT_CARD:
+            case TASK_TYPE_H5:
+            case TASK_TYPE_APPLET:
+            case TASK_TYPE_CHANG_SI:
+            case TASK_TYPE_GAME_SHEEP:
+            case TASK_TYPE_GAME_TECENT:
+            case TASK_TYPE_GAME_XIAO_MI:
                 return false;
-            case 1000:
-                return open_mode == 1;// 1:打开应用 2:H5内部 3:H5外部
-            case 1:
-            case 3:
+            case TASK_TYPE_SUCCESSION:
+                return open_mode == OPEN_MODE_TYPE_APP;// 1:打开应用 2:H5内部 3:H5外部
+            case TASK_TYPE_TIME:
+            case TASK_TYPE_APP:
             default:
                 return true;
         }
@@ -650,6 +667,28 @@ public class TaskEty implements Serializable, IDownload {
      * 是否是小程序 1006
      */
     public boolean isApplet(){
-        return task_type == 1006;
-    }
+        return task_type == TASK_TYPE_APPLET;
+    }
+    //task_type 非连续任务类型 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务 1002平台游戏,1003 腾讯游戏,1004 小米游戏
+    public static final int TASK_TYPE_TIME = 1;
+    public static final int TASK_TYPE_CREDIT_CARD = 2;
+    public static final int TASK_TYPE_APP = 3;
+    public static final int TASK_TYPE_H5 = 4;
+    public static final int TASK_TYPE_SUCCESSION = 1000;
+    public static final int TASK_TYPE_CHANG_SI = 1001;
+    public static final int TASK_TYPE_GAME_SHEEP = 1002;
+    public static final int TASK_TYPE_GAME_TECENT = 1003;
+    public static final int TASK_TYPE_GAME_XIAO_MI = 1004;
+    public static final int TASK_TYPE_APPLET = 1006;
+    public static final int TASK_TYPE_GAME_OTHER = 1099;
+    //open_mode 连续任务类型
+    public static final int OPEN_MODE_TYPE_APP = 1;
+    public static final int OPEN_MODE_TYPE_H5_IN = 2;
+    public static final int OPEN_MODE_TYPE_H5_OUT = 3;
+
+    //inspect_type = 1; 审核类型// 1游戏sdk自动审核 2手动审核 3,小绵羊自动审核
+    public static final int INSPECT_TYPE_SDK = 1;
+    public static final int INSPECT_TYPE_PERSION = 2;
+    public static final int INSPECT_TYPE_SHEEP = 3;
+
 }

+ 1 - 105
app/src/main/java/com/sheep/gamegroup/util/TestUtil.java

@@ -1,11 +1,8 @@
 package com.sheep.gamegroup.util;
 
 import android.app.Activity;
-import android.app.DownloadManager;
-import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
-import android.net.Uri;
 import android.support.v7.app.AlertDialog;
 import android.text.TextUtils;
 import android.util.Log;
@@ -21,7 +18,6 @@ import com.sheep.gamegroup.model.entity.CreditCard;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.LoginEntity;
 import com.sheep.gamegroup.model.entity.LoginUser;
-import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.usage.AppUsageManager;
@@ -32,8 +28,8 @@ import com.sheep.gamegroup.view.activity.ActSheepPngList;
 import com.sheep.gamegroup.view.activity.ActWeb;
 import com.sheep.gamegroup.view.dialog.DialogLoading;
 import com.sheep.gamegroup.view.dialog.DialogNewbieTaskList;
-import com.sheep.gamegroup.view.dialog.DialogShare;
 import com.sheep.gamegroup.view.dialog.DialogProgress;
+import com.sheep.gamegroup.view.dialog.DialogShare;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -53,8 +49,6 @@ import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
-import static com.sheep.jiuyan.samllsheep.utils.ClassFileHelper.DIR;
-
 /**
  * Created by realicing on 2018/5/3.
  * realicing@sina.com
@@ -67,104 +61,6 @@ public class TestUtil {
             textUtils = new TestUtil();
         return textUtils;
     }
-    public static void setDebugDownLoad(final Context context, View view, final TaskEty taskEty) {
-        view.setOnLongClickListener(new View.OnLongClickListener() {
-            @Override
-            public boolean onLongClick(View view) {
-                final String[] items = {"复制下载地址", "系统下载", "浏览器下载"};
-                AlertDialog dialog = new AlertDialog.Builder(context).setTitle("请选择操作")
-                        .setItems(items, new DialogInterface.OnClickListener() {
-
-                            @Override
-                            public void onClick(DialogInterface dialog, int which) {
-                                switch (items[which]) {
-                                    case "复制下载地址":
-                                        debugCopy(context, taskEty);
-                                        break;
-                                    case "系统下载":
-                                        debugSysDownload(context, taskEty);
-                                        break;
-                                    case "浏览器下载":
-                                        debugWebDownload(context, taskEty);
-                                        break;
-                                }
-                            }
-                        }).create();
-                dialog.show();
-                return true;
-            }
-        });
-    }
-
-    private static void debugCopy(final Context context, final TaskEty taskEty) {
-        if (StringUtils.CopyText(taskEty.getDownload_link())) {
-            G.showToast("已经复制游戏下载链接");
-        }
-    }
-
-    private static void debugSysDownload(final Context context, TaskEty taskEty) {
-        sysDownload(context, taskEty.getDownload_link(), taskEty.getTask_name(), "下载小绵羊任务中的apk:" + taskEty.getPackage_names(), taskEty.getPackage_names() + ".apk", "系统开始下载apk");
-    }
-
-    public static void sysDownload(final Context context, String downloadLink, String title, String description, String fileName, String toast) {
-        // 创建下载请求
-        DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadLink));
-
-        /*
-         * 设置在通知栏是否显示下载通知(下载进度), 有 3 个值可选:
-         *    VISIBILITY_VISIBLE:                   下载过程中可见, 下载完后自动消失 (默认)
-         *    VISIBILITY_VISIBLE_NOTIFY_COMPLETED:  下载过程中和下载完成后均可见
-         *    VISIBILITY_HIDDEN:                    始终不显示通知
-         */
-        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
-
-        // 设置通知的标题和描述
-        request.setTitle(title);
-        request.setDescription(description);
-
-        /*
-         * 设置允许使用的网络类型, 可选值:
-         *     NETWORK_MOBILE:      移动网络
-         *     NETWORK_WIFI:        WIFI网络
-         *     NETWORK_BLUETOOTH:   蓝牙网络
-         * 默认为所有网络都允许
-         */
-//                     request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
-
-        // 添加请求头
-        // request.addRequestHeader("User-Agent", "Chrome Mozilla/5.0");
-        if (fileName != null) {
-            // 设置下载文件的保存位置
-            File saveFile = new File(DIR, fileName);
-            request.setDestinationUri(Uri.fromFile(saveFile));
-        }
-
-        /*
-         * 2. 获取下载管理器服务的实例, 添加下载任务
-         */
-        DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
-        if (manager != null) {
-            // 将下载请求加入下载队列, 返回一个下载ID
-            long downloadId = manager.enqueue(request);
-            if (toast != null)
-                G.showToast(toast);
-        }
-    }
-
-    private static void debugWebDownload(final Context context, final TaskEty taskEty) {
-        webDownload(context, taskEty.getDownload_link());
-    }
-
-    public static void webDownload(final Context context, String downloadLink) {
-        if (context instanceof Activity) {
-            Intent intent = new Intent();
-            intent.setAction(Intent.ACTION_VIEW);
-            intent.addCategory(Intent.CATEGORY_BROWSABLE);
-            intent.setData(Uri.parse(downloadLink));
-            context.startActivity(intent);
-            G.showToast("浏览器开始下载apk");
-        }
-    }
 
     public static void testChange(final Activity activity, TextView test_change) {
         if (isTest() && !ConfigUtil.getInstance().isFileExists()) {

+ 14 - 8
app/src/main/java/com/sheep/gamegroup/view/activity/ActSignCard.java

@@ -70,7 +70,6 @@ public class ActSignCard extends BaseActivity {
     @BindView(R.id.sign_card_super_users)
     RecyclerView sign_card_super_users;
     private ActSignCard activity;
-
     @Override
     protected int getLayoutId() {
         return R.layout.act_sign_card;
@@ -181,6 +180,12 @@ public class ActSignCard extends BaseActivity {
     public static final int INIT = -2;
     public static final int LOADING = -1;
     public static final int SUCCESS = 0;
+    //1未报名 2已打卡 3可以打卡 4已经过了时间 5活动暂未开始
+    public static final int PUNCH_TYPE_NOT_SIGN_UP = 1;
+    public static final int PUNCH_TYPE_HAD_PUNCH = 2;
+    public static final int PUNCH_TYPE_CAN_PUNCH = 3;
+    public static final int PUNCH_TYPE_OUT_TIME = 4;
+    public static final int PUNCH_TYPE_NOT_START = 5;
     private int punchType = INIT;//1未报名 2已打卡 3可以打卡 4已经过了时间 5活动暂未开始
 
     @Override
@@ -325,7 +330,7 @@ public class ActSignCard extends BaseActivity {
     }
 
     private void 参加打卡挑战() {
-        if (punchType == 3) {//可以打卡
+        if (punchType == PUNCH_TYPE_CAN_PUNCH) {//可以打卡
             参加打卡();
         } else if (initCanSignUp == SUCCESS && isCanSignUp) {//可以报名
             参加报名();
@@ -351,8 +356,8 @@ public class ActSignCard extends BaseActivity {
                                             Jump2View.getInstance().goSignRecordAct(activity, null);
                                         }
                                     }));
+                            punchType = PUNCH_TYPE_HAD_PUNCH;//1未报名 2已打卡 3可以打卡 4已经过了时间 5活动暂未开始
                             initPunchAndSignCount();//(刷新数据)获取可打卡和报名人数
-                            punchType = 2;//1未报名 2已打卡 3可以打卡 4已经过了时间 5活动暂未开始
                             initBtnState();
                         } else {
                             G.showToast(baseMessage);
@@ -388,6 +393,7 @@ public class ActSignCard extends BaseActivity {
                                                             SysAppUtil.startAlermApp(activity, "小绵羊打卡任务", 7, 5);
                                                         }
                                                     }));
+                                            punchType = PUNCH_TYPE_CAN_PUNCH;
                                             initPunchAndSignCount();//(刷新数据)获取可打卡和报名人数
                                         } else {
                                             G.showToast(baseMessage);
@@ -423,6 +429,9 @@ public class ActSignCard extends BaseActivity {
                         sign_card_join.setEnabled(false);
                         sign_card_join.setText(String.format(Locale.CHINA, "%s后可打卡", TimeUtil.getHours(totalTime-- * 1000)));
                         sendEmptyMessageDelayed(msg.what, 1000L);
+                    } else {
+                        sign_card_join.setEnabled(false);
+                        sign_card_join.setText("活动未开始");
                     }
                     break;
             }
@@ -431,19 +440,16 @@ public class ActSignCard extends BaseActivity {
     private long totalTime = INIT;
     private void initBtnState() {
         if(punchAndSign != null && initCanSignUp == SUCCESS && punchType > SUCCESS){//初始化成功
-            if (punchType == 3) {//可以打卡
+            if (punchType == PUNCH_TYPE_CAN_PUNCH) {//可以打卡
                 sign_card_join.setEnabled(true);
                 sign_card_join.setText("立即打卡");
             } else if (isCanSignUp) {//可以报名
                 sign_card_join.setEnabled(true);
                 sign_card_join.setText("参加打卡挑战");
-            } else if(totalTime == INIT) {//只设置一次
+            } else {
                 sign_card_join.setEnabled(false);
                 totalTime = punchAndSign.getCountdown();
                 handler.sendEmptyMessage(0);//开始计时
-            } else {
-                sign_card_join.setEnabled(false);
-                sign_card_join.setText(R.string.service_data_error);
             }
         } else {
             sign_card_join.setEnabled(false);

+ 51 - 37
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -56,7 +56,6 @@ import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.MyListview;
 import com.sheep.gamegroup.util.PngUtil;
 import com.sheep.gamegroup.util.SelfCountDownTimer;
-import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.util.ViewUtil;
@@ -92,6 +91,20 @@ import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
+import static com.sheep.gamegroup.model.entity.TaskEty.INSPECT_TYPE_PERSION;
+import static com.sheep.gamegroup.model.entity.TaskEty.INSPECT_TYPE_SDK;
+import static com.sheep.gamegroup.model.entity.TaskEty.INSPECT_TYPE_SHEEP;
+import static com.sheep.gamegroup.model.entity.TaskEty.OPEN_MODE_TYPE_APP;
+import static com.sheep.gamegroup.model.entity.TaskEty.OPEN_MODE_TYPE_H5_IN;
+import static com.sheep.gamegroup.model.entity.TaskEty.OPEN_MODE_TYPE_H5_OUT;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_APP;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_APPLET;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_CHANG_SI;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_CREDIT_CARD;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_SHEEP;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_TECENT;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_XIAO_MI;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_SUCCESSION;
 import static com.sheep.gamegroup.util.CommonUtil.START_TASK;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.GAME_INSTEAD_OF_RECHARGE_GET;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.RECEIVE_AWARD_GAME_TASK;
@@ -288,7 +301,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
 
         loadOld();
         //自动审核
-        if (taskEty.getInspect_type() == 3 || DataUtil.IS_LISTEN_SCREEN_SHOT) {
+        if (taskEty.getInspect_type() == INSPECT_TYPE_SHEEP || DataUtil.IS_LISTEN_SCREEN_SHOT) {
             ViewUtil.setColorMapText(item_exlpain_title, getString(R.string.supplement_explain_n), "点我开启权限", "#FF0000");
             //用户可主动点击进行开启查看权限
             taskdetail_explain_layout.setOnClickListener(new View.OnClickListener() {
@@ -341,22 +354,22 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
             btnUpImag.setText(CommonUtil.TASK_OFFLINE);//第二按钮不可点击且显示状态
             btnUpImag.setEnabled(false);
             switch (taskEty.getTask_type()) {// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务 1004 小米游戏任务
-                case 4://h5业务
+                case TASK_TYPE_H5://h5业务
                     btnTaskItem.setVisibility(View.GONE);
                     break;
-                case 2:
-                case 1001://信用卡与畅思任务不考虑
-                case 1006://小程序
+                case TASK_TYPE_CREDIT_CARD:
+                case TASK_TYPE_CHANG_SI://信用卡与畅思任务不考虑
+                case TASK_TYPE_APPLET://小程序
                     bottom_btn_layout.setVisibility(View.GONE);
                     break;
-                case 1000://连续任务
+                case TASK_TYPE_SUCCESSION://连续任务
                     switch (taskEty.getOpen_mode()){//连续任务的打开方式 1:打开应用 2:H5内部 3:H5外部
-                        case 2:
-                        case 3:
+                        case OPEN_MODE_TYPE_H5_OUT:
+                        case OPEN_MODE_TYPE_H5_IN:
                             type = TASK_TYPE_H5 + taskEty.getOpen_mode();
                             btnTaskItem.setText(START_TASK);
                             break;
-                        case 1:
+                        case OPEN_MODE_TYPE_APP:
                         default:
                             setFirstBtnState();
                             break;
@@ -367,9 +380,9 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                         btnUpImag.setEnabled(true);
                     }
                     break;
-                case 1002:
-                case 1003:
-                case 1004://游戏任务
+                case TASK_TYPE_GAME_SHEEP:
+                case TASK_TYPE_GAME_TECENT:
+                case TASK_TYPE_GAME_XIAO_MI://游戏任务
                     setFirstBtnState();
                     break;
                 default://试玩任务直接设置下载状态
@@ -390,9 +403,9 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                 btnTaskItem.setText(CommonUtil.GET_TASK);
             } else {//有任务记录
                 switch (taskEty.getTask_type()) {// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务 1004 小米游戏任务
-                    case 4://h5业务
-                    case 1006://h5业务
-                        if(taskEty.getTask_type() == 1006){
+                    case TASK_TYPE_H5://h5业务
+                    case TASK_TYPE_APPLET://h5业务
+                        if(taskEty.isApplet()){
                             btnTaskItem.setVisibility(View.GONE);
                         }else {
                             type = TASK_TYPE_H5;
@@ -422,9 +435,9 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                     case 1001://信用卡与畅思任务不考虑
                         bottom_btn_layout.setVisibility(View.GONE);
                         break;
-                    case 1002:
-                    case 1003:
-                    case 1004://游戏任务
+                    case TASK_TYPE_GAME_SHEEP:
+                    case TASK_TYPE_GAME_TECENT:
+                    case TASK_TYPE_GAME_XIAO_MI://游戏任务
                         if(taskEty.isGameReservationCantDownload()) {//游戏任务中还不可以下载任务(预约任务)-->预约游戏
                             type = TASK_TYPE_RESERVATION;
                             btnTaskItem.setText(CommonUtil.GAME_RESERVATION);
@@ -434,14 +447,14 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                             setGameTaskFirstBtnState();
                         }
                         break;
-                    case 1000://连续任务
+                    case TASK_TYPE_SUCCESSION://连续任务
                         switch (taskEty.getOpen_mode()){//连续任务的打开方式 1:打开应用 2:H5内部 3:H5外部
-                            case 2:
-                            case 3:
+                            case OPEN_MODE_TYPE_H5_OUT:
+                            case OPEN_MODE_TYPE_H5_IN:
                                 type = TASK_TYPE_H5 + taskEty.getOpen_mode();
                                 btnTaskItem.setText(START_TASK);
                                 break;
-                            case 1:
+                            case OPEN_MODE_TYPE_APP:
                             default:
                                 setFirstBtnState();
                                 break;
@@ -510,11 +523,11 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
      */
     private void setOtherTaskBtnState() {
         switch (taskEty.getInspect_type()) {// 1自动审核 2手动审核 3,应用自动审核
-            case 1:
+            case INSPECT_TYPE_SDK:
                 btnUpImag.setText("无需截图");//第二按钮不可点击且显示状态(sdk自动审核暂不支持)
                 btnUpImag.setEnabled(false);
                 break;
-            case 2:
+            case INSPECT_TYPE_PERSION:
                 switch (type){
                     case DownloadUtil.STATUS_INIT:
                     case DownloadUtil.STATUS_FINISH:
@@ -525,7 +538,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                         break;
                 }
                 break;
-            case 3:
+            case INSPECT_TYPE_SHEEP:
                 btnUpImag.setText("领取奖励");
                 switch (type){
                     case DownloadUtil.STATUS_INIT:
@@ -670,7 +683,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         if (isInstalled) {
             action1.call(DownloadUtil.STATUS_INSTALLED);
             switch (taskEty.getTask_type()){// 1时间试玩任务 3应用下载 1000连续任务, 1002 1003游戏任务 1002平台游戏,1003 腾讯游戏,1004 小米游戏
-                case 3:
+                case TASK_TYPE_APP:
                     buttonStr = CommonUtil.OPEN_APPLY;
                     break;
                 default:
@@ -816,7 +829,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
             } else {
                 accepteReceiveAward();
             }
-        } else if (taskEty.getInspect_type() == 3) {//应用自动审核任务
+        } else if (taskEty.getInspect_type() == INSPECT_TYPE_SHEEP) {//应用自动审核任务
             try {
                 checkAndCommitTask();
             } catch (Exception e) {
@@ -909,11 +922,11 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
      */
     private void commitScreenShot() {
         switch (taskEty.getTask_type()) {
-            case 1000://连续任务
+            case TASK_TYPE_SUCCESSION://连续任务
                 commitScreenShotTaskId = taskEty.getCanCommitChildRelease_task_id();
                 break;
             default:
-                commitScreenShotTaskId = taskReleaseEty.getAccepted_task_id() == 0 && gettaskAcceptedEty != null ? gettaskAcceptedEty.getId() : taskReleaseEty.getAccepted_task_id();
+                commitScreenShotTaskId = gettaskAcceptedEty.getId();
                 break;
         }
         if (commitScreenShotTaskId > 0) {
@@ -990,7 +1003,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
      */
     private void addCanAcceptedTaskChildId(JSONObject object, TaskEty taskEty) {
         switch (taskEty.getTask_type()) {
-            case 1000://连续任务
+            case TASK_TYPE_SUCCESSION://连续任务
                 int task_child_id = taskEty.getCanAcceptedChildId();
                 object.put("task_child_id", task_child_id);
                 break;
@@ -1004,7 +1017,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
      */
     private void addCanCommitTaskChildId(JSONObject object, TaskEty taskEty) {
         switch (taskEty.getTask_type()) {
-            case 1000://连续任务
+            case TASK_TYPE_SUCCESSION://连续任务
                 TaskChild task_child = taskEty.getCanCommitChild(TaskEty.STATUS_RUNNING);
                 if(task_child != null)
                     object.put("task_child_id", task_child.getId());
@@ -1021,7 +1034,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
             int thisRun = taskEty.getRunTask();
             if (thisRun == 1) {//接受了任务
                 llInfos.addView(getStep(CommonUtil.GET_TASK, "已完成", 0));
-                if (taskEty.getTask_type() == 2) {//信用卡
+                if (taskEty.getTask_type() == TASK_TYPE_CREDIT_CARD) {//信用卡
                     llInfos.addView(getStep("信用卡注册", "待完成", 0));
                 } else if (PackageUtil.isAppInstalled(SheepApp.getInstance(), taskEty.getPackage_names())) {
                     llInfos.addView(getStep("APP下载", "已完成", 0));
@@ -1173,6 +1186,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                         取消任务(taskReleaseEty.getAccepted_task_id(), new Action1<Integer>() {
                             @Override
                             public void call(Integer integer) {
+                                taskReleaseEty.setAccepted_task_id(0);
                                 CommonUtil.getInstance().setTAskEnty(null);
                                 acceptedTask();
                             }
@@ -1381,7 +1395,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         taskdetail_user_use_layout.setVisibility(View.GONE);
         taskdetail_explain_layout.setVisibility(View.GONE);
         switch (taskEty.getTask_type()) {
-            case 1000://连续任务
+            case TASK_TYPE_SUCCESSION://连续任务
                 if (taskEty.getChild() != null && taskEty.getChild().size() > 0 && taskEty.getChild().get(0).getDescEntityList() != null) {
                     detail_task_recyclerview.setVisibility(View.VISIBLE);
                     detail_item_layout_2.setVisibility(View.GONE);
@@ -1400,9 +1414,9 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                 }
 
                 break;
-            case 1002:
-            case 1003:
-            case 1004://游戏任务
+            case TASK_TYPE_GAME_SHEEP:
+            case TASK_TYPE_GAME_TECENT:
+            case TASK_TYPE_GAME_XIAO_MI://游戏任务
                 ems_game_layout.setVisibility(View.VISIBLE);
                 detail_shrae_friend_layout.setVisibility(View.GONE);
                 item_layout.setBackgroundResource(R.drawable.x_shap_shadow_bg_rectgangle_white);

+ 4 - 2
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailCreditCardAct.java

@@ -45,6 +45,8 @@ import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_CREDIT_CARD;
+
 /**
  * 信用卡任务详情页面
  * Created by realicing on 2018/4/26.
@@ -167,7 +169,7 @@ public class TaskDetailCreditCardAct extends AbsChooseImageActivity {
 
         }
         detail_task_listview.setVisibility(View.GONE);
-        if (taskEty.getTask_type() == 2) {
+        if (taskEty.getTask_type() == TASK_TYPE_CREDIT_CARD) {
             btnTaskItem.setText("信用卡注册");
         }
     }
@@ -292,7 +294,7 @@ public class TaskDetailCreditCardAct extends AbsChooseImageActivity {
         llInfos.removeAllViews();
         if (taskEty != null && taskReleaseEty != null && taskReleaseEty.getAccepted_task_id() != 0) {
             llInfos.addView(getStep("领取任务", "已完成", 0));
-            if (taskEty.getTask_type() == 2) {//信用卡
+            if (taskEty.getTask_type() == TASK_TYPE_CREDIT_CARD) {//信用卡
                 llInfos.addView(getStep("信用卡注册", "待完成", 2 ));
             } else if (PackageUtil.isAppInstalled(SheepApp.getInstance(), taskEty.getPackage_names())) {
                 llInfos.addView(getStep("下载游戏", "已完成", 0));

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

@@ -16,10 +16,9 @@ import android.widget.TextView;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
 import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
+import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.event.BigEvent;
 import com.sheep.gamegroup.event.EventTypes;
-import com.sheep.gamegroup.util.DownloadUtil;
-import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.helper.TaskHelper;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.GameAgencyRechargePlatformEntity;
@@ -32,17 +31,18 @@ import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.TaskReleaseEty;
 import com.sheep.gamegroup.presenter.TryMakeMoneyPresenter;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DownloadUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.SelfCountDownTimer;
-import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.util.ViewHolder;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.service.DownloadService;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 
@@ -612,7 +612,7 @@ public class TryMakeMoneyAdp extends AdbCommonRecycler<RecyleObj> {
                 } else {
                     viewHolder.itemView.findViewById(R.id.line_tv).setVisibility(View.VISIBLE);
                 }
-                TestUtil.setDebugDownLoad(context, viewHolder.itemView, taskEty);
+                DownloadService.setDownLoadLongClick(viewHolder.itemView, taskEty);
                 TextView detail_task_tv = viewHolder.itemView.findViewById(R.id.detail_task_tv);
 
 
@@ -831,7 +831,7 @@ public class TryMakeMoneyAdp extends AdbCommonRecycler<RecyleObj> {
                         UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DETAIL);
                     }
                 });
-                TestUtil.setDebugDownLoad(context, viewHolder.itemView, taskEty);
+                DownloadService.setDownLoadLongClick(viewHolder.itemView, taskEty);
 
                 /*
                   倒计时

+ 4 - 2
app/src/main/java/com/sheep/gamegroup/view/dialog/DialogAddAccount.java

@@ -39,6 +39,8 @@ import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_TECENT;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_XIAO_MI;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_GAME_ACCOUNT_ADD_COMMIT;
 
 /**
@@ -294,7 +296,7 @@ public class DialogAddAccount {
     private void platformData() {
         gamePlatorEntity.clear();
         gamePlatorEntity.add(new GridViewEntity(false, "平台游戏", 1002 + ""));
-        gamePlatorEntity.add(new GridViewEntity(false, "小米游戏", 1004 + ""));
+        gamePlatorEntity.add(new GridViewEntity(false, "小米游戏", TASK_TYPE_GAME_XIAO_MI + ""));
         gamePlatorEntity.add(new GridViewEntity(false, "腾讯游戏", 1003 + ""));
     }
 
@@ -456,7 +458,7 @@ public class DialogAddAccount {
             task_id = 0;
         }
         game_type = new_game_type;
-        if(game_type == 1003 && radio_group_tencent != null){//腾讯游戏
+        if(game_type == TASK_TYPE_GAME_TECENT && radio_group_tencent != null){//腾讯游戏
             radio_group_tencent.setVisibility(View.VISIBLE);
         }else {
             radio_group_tencent.setVisibility(View.GONE);

+ 10 - 6
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGameAgencyRecharge.java

@@ -37,6 +37,10 @@ import butterknife.ButterKnife;
 import butterknife.Unbinder;
 import rx.functions.Action1;
 
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_SHEEP;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_TECENT;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_XIAO_MI;
+
 /**
  * Created by ljy on 2018/7/16.
  */
@@ -165,14 +169,14 @@ public class FgtGameAgencyRecharge extends BaseFragment {
                             R.mipmap.game_platform_sheep_icon,
                             "平台游戏充值",
                             "充值有福利",
-                            1002));
+                            TASK_TYPE_GAME_SHEEP));
                     break;
                 case "1003":
                     platformList.add(new GameAgencyRechargePlatformEntity(
                             R.mipmap.game_tencent_icon,
                             "腾讯游戏充值",
                             "充值有福利",
-                            1003));
+                            TASK_TYPE_GAME_TECENT));
 
                     break;
                 case "1004":
@@ -181,7 +185,7 @@ public class FgtGameAgencyRecharge extends BaseFragment {
                             R.mipmap.game_xiaomi_icon,
                             "小米游戏充值",
                             "充值有福利",
-                            1004));
+                            TASK_TYPE_GAME_XIAO_MI));
                     break;
                 case "1002" + ",1003" + ",1004":
                 default:
@@ -189,17 +193,17 @@ public class FgtGameAgencyRecharge extends BaseFragment {
                             R.mipmap.game_platform_sheep_icon,
                             "平台游戏充值",
                             "充值有福利",
-                            1002));
+                            TASK_TYPE_GAME_SHEEP));
                     platformList.add(new GameAgencyRechargePlatformEntity(
                             R.mipmap.game_xiaomi_icon,
                             "小米游戏充值",
                             "充值有福利",
-                            1004));
+                            TASK_TYPE_GAME_XIAO_MI));
                     platformList.add(new GameAgencyRechargePlatformEntity(
                             R.mipmap.game_tencent_icon,
                             "腾讯游戏充值",
                             "充值有福利",
-                            1003));
+                            TASK_TYPE_GAME_TECENT));
                     break;
 
             }

+ 9 - 4
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGame.java

@@ -59,6 +59,11 @@ import butterknife.Unbinder;
 import rx.android.schedulers.AndroidSchedulers;
 import rx.schedulers.Schedulers;
 
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_OTHER;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_SHEEP;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_TECENT;
+import static com.sheep.gamegroup.model.entity.TaskEty.TASK_TYPE_GAME_XIAO_MI;
+
 /**
  * Created by ljy on 2018/9/3.
  */
@@ -393,10 +398,10 @@ public class FgtPlayGame extends BaseFragment {
      */
     private void initTab(){
         List<FindTag> newList = new ArrayList<>();
-        newList.add(new FindTag(1002, "平台游戏"));
-        newList.add(new FindTag(1004, "小米游戏"));
-        newList.add(new FindTag(1003, "腾讯游戏"));
-        newList.add(new FindTag(1099, "其他"));
+        newList.add(new FindTag(TASK_TYPE_GAME_SHEEP, "平台游戏"));
+        newList.add(new FindTag(TASK_TYPE_GAME_XIAO_MI, "小米游戏"));
+        newList.add(new FindTag(TASK_TYPE_GAME_TECENT, "腾讯游戏"));
+        newList.add(new FindTag(TASK_TYPE_GAME_OTHER, "其他"));
         if (!ListUtil.isEmpty(newList)) {
             list.clear();
             ListUtil.addAll(list, newList);

+ 5 - 1
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtSmallSheep.java

@@ -1169,7 +1169,11 @@ public class FgtSmallSheep extends BaseFragment implements SmallSheepContract.Vi
     private void checkAndInitView() {
         if (recyclerview == null){
             if(unbinder != null){
-                unbinder.unbind();
+                try {
+                    unbinder.unbind();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
                 unbinder = null;
             }
             unbinder = ButterKnife.bind(this, mView);

+ 5 - 1
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtTryMakeMoney.java

@@ -79,7 +79,11 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     private void checkAndInitView() {
         if (empty_view == null) {
             if(unbinder != null){
-                unbinder.unbind();
+                try {
+                    unbinder.unbind();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
                 unbinder = null;
             }
             unbinder = ButterKnife.bind(this, mView);

+ 133 - 5
app/src/main/java/com/sheep/jiuyan/samllsheep/service/DownloadService.java

@@ -1,30 +1,38 @@
 package com.sheep.jiuyan.samllsheep.service;
 
+import android.app.Activity;
+import android.app.DownloadManager;
 import android.app.Service;
+import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
+import android.net.Uri;
 import android.os.IBinder;
 import android.support.annotation.Nullable;
+import android.support.v7.app.AlertDialog;
 import android.view.View;
 
 import com.arialyy.annotations.Download;
 import com.arialyy.aria.core.Aria;
 import com.arialyy.aria.core.download.DownloadTask;
+import com.kfzs.duanduan.utils.ApkUtils;
+import com.kfzs.duanduan.view.DialogStorageLow;
 import com.sheep.gamegroup.event.BigEvent;
 import com.sheep.gamegroup.event.EventTypes;
 import com.sheep.gamegroup.model.entity.DialogConfig;
+import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.DownloadUtil;
-import com.kfzs.duanduan.utils.ApkUtils;
-import com.kfzs.duanduan.view.DialogStorageLow;
 import com.sheep.gamegroup.util.LogUtil;
-import com.sheep.gamegroup.util.TestUtil;
+import com.sheep.gamegroup.util.StringUtils;
 import com.sheep.gamegroup.util.ViewUtil;
-import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 import org.greenrobot.eventbus.EventBus;
 
+import java.io.File;
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
@@ -33,6 +41,8 @@ import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
+import static com.sheep.jiuyan.samllsheep.utils.ClassFileHelper.DIR;
+
 /**
  * @auther realicing
  * 自动更新的Service
@@ -68,7 +78,7 @@ public class DownloadService extends Service {
                                     .setBtnRightOnClickListener(new View.OnClickListener() {
                                         @Override
                                         public void onClick(View view) {
-                                            TestUtil.sysDownload(SheepApp.getInstance(), task.getKey(), task.getTaskName(), "下载小绵羊任务中的apk:" + task.getTaskName(), task.getTaskName()+task.getKey().hashCode() + ".apk", "正在下载");
+                                            showDownloadType(task.getKey(), task.getTaskName());
                                         }
                                     }));
                         }
@@ -143,4 +153,122 @@ public class DownloadService extends Service {
     public IBinder onBind(Intent intent) {
         return null;
     }
+
+
+
+
+
+
+    public static void setDownLoadLongClick(View view, final TaskEty task) {
+        if(task != null && task.needDownloadApp())
+            setDownLoadLongClick(view, task.getDownload_link(), task.getTask_name());
+    }
+
+    public static void setDownLoadLongClick(View view, final String link, final String taskName) {
+        view.setOnLongClickListener(new View.OnLongClickListener() {
+            @Override
+            public boolean onLongClick(View view) {
+                showDownloadType(link, taskName);
+                return true;
+            }
+        });
+    }
+
+    private static void showDownloadType(final String link, final String taskName) {
+        final Activity activity = ActivityManager.getInstance().currentActivity();
+        if (activity == null) {
+            return;
+        }
+        final String[] items = {"复制下载地址", "系统下载", "浏览器下载"};
+        AlertDialog dialog = new AlertDialog.Builder(activity).setTitle("请选择操作")
+                .setItems(items, new DialogInterface.OnClickListener() {
+
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        try {
+                            switch (items[which]) {
+                                case "复制下载地址":
+                                    copyDownloadLink(link);
+                                    break;
+                                case "系统下载":
+                                    sysDownload(activity, link, taskName);
+                                    break;
+                                case "浏览器下载":
+                                    webDownload(activity, link);
+                                    break;
+                            }
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                            G.showToast(e.getMessage());
+                        }
+                    }
+                }).create();
+        dialog.show();
+    }
+
+    private static void copyDownloadLink(final String link) {
+        if (StringUtils.CopyText(link)) {
+            G.showToast("已经复制游戏下载链接");
+        }
+    }
+
+    private static void sysDownload(final Context context, String link, String taskName) {
+        sysDownload(context, link, taskName, String.format(Locale.CHINA, "下载小绵羊任务【%s】中的app", taskName), taskName + link.hashCode() + ".apk", "系统开始下载apk");
+    }
+
+    public static void sysDownload(final Context context, String downloadLink, String title, String description, String fileName, String toast) {
+        // 创建下载请求
+        DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadLink));
+
+        /*
+         * 设置在通知栏是否显示下载通知(下载进度), 有 3 个值可选:
+         *    VISIBILITY_VISIBLE:                   下载过程中可见, 下载完后自动消失 (默认)
+         *    VISIBILITY_VISIBLE_NOTIFY_COMPLETED:  下载过程中和下载完成后均可见
+         *    VISIBILITY_HIDDEN:                    始终不显示通知
+         */
+        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
+
+        // 设置通知的标题和描述
+        request.setTitle(title);
+        request.setDescription(description);
+
+        /*
+         * 设置允许使用的网络类型, 可选值:
+         *     NETWORK_MOBILE:      移动网络
+         *     NETWORK_WIFI:        WIFI网络
+         *     NETWORK_BLUETOOTH:   蓝牙网络
+         * 默认为所有网络都允许
+         */
+//                     request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
+
+        // 添加请求头
+        // request.addRequestHeader("User-Agent", "Chrome Mozilla/5.0");
+        if (fileName != null) {
+            // 设置下载文件的保存位置
+            File saveFile = new File(DIR, fileName);
+            request.setDestinationUri(Uri.fromFile(saveFile));
+        }
+
+        /*
+         * 2. 获取下载管理器服务的实例, 添加下载任务
+         */
+        DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
+        if (manager != null) {
+            // 将下载请求加入下载队列, 返回一个下载ID
+            long downloadId = manager.enqueue(request);
+            if (toast != null)
+                G.showToast(toast);
+        }
+    }
+
+    public static void webDownload(final Context context, String downloadLink) {
+        if (context instanceof Activity) {
+            Intent intent = new Intent();
+            intent.setAction(Intent.ACTION_VIEW);
+            intent.addCategory(Intent.CATEGORY_BROWSABLE);
+            intent.setData(Uri.parse(downloadLink));
+            context.startActivity(intent);
+            G.showToast("浏览器开始下载apk");
+        }
+    }
 }