Explorar el Código

一些bug修改

liujiangyao hace 8 años
padre
commit
bad4c7bd53

+ 21 - 9
app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java

@@ -171,8 +171,13 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                     refalsh();
                     break;
                 case 1:
-                    tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists), position);
+                    if(releaseEtyLists != null && releaseEtyLists.size()>0){
+
+                        position++;
+                        tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists), position);
+                    }
                     tryMakeMoneyAdp.notifyDataSetChanged();
+                    recyclerview.setFocusable(false);
                     scrollView.scrollTo(0,0);
                     break;
             }
@@ -535,7 +540,6 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, taskAcceptedEty), position);
             tryMakeMoneyAdp.addPresenter(tryMakeMoneyPresenter);
             tryMakeMoneyAdp.setTaskAcceptedEty(taskAcceptedEty);
-            position++;
 //            mhandler.sendEmptyMessage(0);
         } catch (Exception e) {
             e.printStackTrace();
@@ -809,6 +813,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         }
         if (mImageGlarryStr != null) {
             mImageGlarryStr.init(imgURL.toArray(new String[]{}), ImageView.ScaleType.CENTER_CROP);
+            mImageGlarryStr.notifyAll();
             return;
         }
         mImageGlarryStr = new ImageGlarry((Activity) mContext, viewpager_banner, group_banner);
@@ -825,7 +830,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                         break;
                     case 2:
                         Jump2View.getInstance()
-                                .goTaskDetailView(activity, clickedGameObj.getExt());
+                                .goTaskDetailView(activity, clickedGameObj.getObjects());
                         break;
                     case 3:
                         Jump2View.getInstance()
@@ -833,7 +838,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                         break;
                     case 4:
                         Jump2View.getInstance()
-                                .goWebview(activity, clickedGameObj.getExt());
+                                .goWebview(activity, clickedGameObj.getObjects());
                         break;
                 }
             }
@@ -845,12 +850,19 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
      */
     private void inviteNotice(final  List<BulletinEnty> bulletinEntyList) {
         homepageItemNoticeLayout.setVisibility(View.VISIBLE);
-        List<String> infoList = new ArrayList<>();
-        for(BulletinEnty bulletinEnty: bulletinEntyList){
-            infoList.add(bulletinEnty.getContent()+"");
-        }
-        homepageItemNoticeMv.startWithList(infoList, R.anim.anim_left_in,R.anim.anim_right_out);
+//        List<String> infoList = new ArrayList<>();
+//        for(BulletinEnty bulletinEnty: bulletinEntyList){
+//            infoList.add(bulletinEnty.getContent()+"");
+//        }
+//        homepageItemNoticeMv.startWithList(infoList, R.anim.anim_left_in,R.anim.anim_right_out);
 
+        for (BulletinEnty entity : bulletinEntyList) {
+            StringBuilder sb = new StringBuilder();
+            sb.append(entity.getContent() + "   ");
+            TextView moreView = (TextView) LayoutInflater.from(getActivity()).inflate(R.layout.x_item_view, null);
+            moreView.setText(sb.toString());
+            homepageItemNoticeMv.addView(moreView);
+        }
         if (!homepageItemNoticeMv.isAutoStart()) {
             homepageItemNoticeMv.stopFlipping();
             homepageItemNoticeMv.startFlipping();

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

@@ -285,7 +285,7 @@ public interface ApiService {
      * 获取任务详情
      */
     @GET("app/release_task/{id}/desc")
-    Observable<BaseMessage> taskDesc(@Query("id") int id);
+    Observable<BaseMessage> taskDesc(@Path("id") int id);
     @GET("app/credit/{id}")
     Observable<BaseMessage> getCredit(@Path("id") int id);
     @POST("app/newbie_task/add_qq")

+ 76 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/DialogEntity.java

@@ -0,0 +1,76 @@
+package com.sheep.gamegroup.model.entity;
+
+import com.kfzs.duanduan.event.EventTypes;
+
+import java.io.Serializable;
+
+/**
+ * 弹框 实体类
+ * Created by ljy on 2018/4/27.
+ */
+
+public class DialogEntity implements Serializable {
+
+    private String title;
+    private String context;
+    private String sure;
+    private String cancel;
+    private String busType;
+    private EventTypes eventTypes;
+
+    public DialogEntity(String title, String context, String sure, String cancel, EventTypes eventTypes) {
+        this.title = title;
+        this.context = context;
+        this.sure = sure;
+        this.cancel = cancel;
+        this.eventTypes = eventTypes;
+    }
+
+    public EventTypes getEventTypes() {
+        return eventTypes;
+    }
+
+    public void setEventTypes(EventTypes eventTypes) {
+        this.eventTypes = eventTypes;
+    }
+
+    public String getBusType() {
+        return busType;
+    }
+
+    public void setBusType(String busType) {
+        this.busType = busType;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getContext() {
+        return context;
+    }
+
+    public void setContext(String context) {
+        this.context = context;
+    }
+
+    public String getSure() {
+        return sure;
+    }
+
+    public void setSure(String sure) {
+        this.sure = sure;
+    }
+
+    public String getCancel() {
+        return cancel;
+    }
+
+    public void setCancel(String cancel) {
+        this.cancel = cancel;
+    }
+}

+ 12 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/SlideshowEty.java

@@ -1,5 +1,7 @@
 package com.sheep.gamegroup.model.entity;
 
+import com.sheep.gamegroup.util.CommonUtil;
+
 /**
  * 首页轮播图
  * Created by ljy on 2018/4/25.
@@ -16,6 +18,16 @@ public class SlideshowEty {
             private String UpdateTime;// 0,
             private String Url;// private String stringprivate String
 
+    private String objects;//预留字段
+
+    public String getObjects() {
+        return objects = CommonUtil.getInstance().getValue(getExt());
+    }
+
+    public void setObjects(String objects) {
+        this.objects = objects;
+    }
+
     public String getCreateTime() {
         return CreateTime;
     }

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

@@ -19,7 +19,7 @@ public class TaskEty implements Serializable{
     private String remarks;//private String string",
     private String screenshots;//private String string",
     private String task_name;//private String string",
-    private int task_type = 1;// 1时间试玩任务 2信用卡任务
+    private int task_type = 1;// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务
     private String update_time;// 0
     private String icon;
     private String package_size;

+ 9 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/TaskReleaseEty.java

@@ -32,6 +32,15 @@ public class TaskReleaseEty implements Serializable{
     private TaskEty task;
 
     private int cancel_duration;
+    private boolean is_running;
+
+    public boolean isIs_running() {
+        return is_running;
+    }
+
+    public void setIs_running(boolean is_running) {
+        this.is_running = is_running;
+    }
 
     public int getAccepted_task_id() {
         return accepted_task_id;

+ 17 - 0
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -4,6 +4,7 @@ import android.content.Context;
 import android.text.TextUtils;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSONObject;
 import com.arialyy.aria.core.Aria;
 import com.arialyy.aria.core.download.DownloadTarget;
 import com.arialyy.aria.core.inf.IEntity;
@@ -13,6 +14,7 @@ import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 
 import java.io.File;
 import java.util.HashMap;
+import java.util.Iterator;
 
 /**
  * 一些公用的class
@@ -197,4 +199,19 @@ public class CommonUtil {
         hashMap.put("about_to_begin", about_to_begin+"");
         return hashMap;
     }
+    /**
+     * json 获取key
+     */
+    public String getValue(String json){
+        try{
+            JSONObject jsonObject = JSONObject.parseObject(json);
+            Iterator iterator = (Iterator) jsonObject.values();
+            while (iterator.hasNext()){
+                return (String) iterator.next();
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return "";
+    }
 }

+ 8 - 3
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -8,6 +8,7 @@ import android.text.TextUtils;
 import com.kfzs.duanduan.ActMain;
 import com.kfzs.duanduan.bean.KFIntentKeys;
 import com.sheep.gamegroup.model.entity.CreditCard;
+import com.sheep.gamegroup.model.entity.DialogEntity;
 import com.sheep.gamegroup.model.entity.NewbieTask;
 import com.sheep.gamegroup.model.entity.NewbieTaskRecord;
 import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
@@ -315,7 +316,10 @@ public class Jump2View {
     }
     public synchronized void goTaskDetailView(Context context, Object o){
         Intent intent = new Intent(context, TaskDetailAct.class);
-        intent.putExtra("task_id", (Integer) o);
+        if(o instanceof Integer){
+            intent.putExtra("task_id", (Integer) o);
+        }
+
         context.startActivity(intent);
     }
 
@@ -408,9 +412,10 @@ public class Jump2View {
      * @param context
      * @param o
      */
-    public void goNoticeAct(Context context, Object o){
+    public void goNoticeAct(Context context, DialogEntity o){
         Intent i = new Intent(context, DialogToastAct.class);
-        context.startActivity(i);
+        i.putExtra("dialog_entity", o);
+        ((Activity)context).startActivityForResult(i,0);
     }
 
     /**

+ 38 - 22
app/src/main/java/com/sheep/gamegroup/view/activity/DialogActivity.java

@@ -31,6 +31,7 @@ import com.kfzs.duanduan.services.DownloadTaskService;
 import com.sheep.gamegroup.di.components.DaggerTaskDialogComponent;
 import com.sheep.gamegroup.di.modules.TaskDialogModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.DialogEntity;
 import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
 import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.TaskState;
@@ -217,28 +218,14 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
                     if(task_accepted_entity == null){//没有正在进行的任务
                         acceptedTask();
                     } else {//先取消正在进行的任务
-                        SheepApp.getInstance().getNetComponent().getApiService().giveUpTask(task_accepted_entity.getId())
-                                        .subscribeOn(Schedulers.io())
-                                        .observeOn(AndroidSchedulers.mainThread())
-                                        .subscribe(new SheepSubscriber<BaseMessage>(activity) {
-                                            @Override
-                                            public void onNext(BaseMessage baseMessage) {
-
-                                                //暂停下载
-                                                CommonUtil.getInstance().stopDownloadTask(activity, task_accepted_entity.getRelease_task().getTask().getDownload_link());
-                                                if(BuildConfig.DEBUG)
-                                                    System.out.println("baseMessage onNext "+ JSON.toJSONString(baseMessage));
-                                                acceptedTask();
-                                                task_accepted_entity = null;
-                                            }
-
-                                            @Override
-                                            public void onError(BaseMessage baseMessage) {
-                                                if(BuildConfig.DEBUG)
-                                                    System.out.println("baseMessage onError "+JSON.toJSONString(baseMessage));
-                                                G.showToast(TextUtils.isEmpty(baseMessage.getMsg()) ? "服务器错误,请稍候再试" : baseMessage.getMsg());
-                                            }
-                                        });
+
+                        Jump2View.getInstance()
+                                .goNoticeAct(activity, new DialogEntity(null,
+                                        "是否放弃正在运行中的任务?",
+                                        "是",
+                                        "否",
+                                        null));
+
                     }
                     break;
                 case 1://开始试玩
@@ -475,4 +462,33 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
 //            PackageUtil.installApk(activity, task.getDownloadPath());
         }
     }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if(requestCode == 0 && resultCode == RESULT_OK){
+            SheepApp.getInstance().getNetComponent().getApiService().giveUpTask(task_accepted_entity.getId())
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(activity) {
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+
+                            //暂停下载
+                            CommonUtil.getInstance().stopDownloadTask(activity, task_accepted_entity.getRelease_task().getTask().getDownload_link());
+                            if(BuildConfig.DEBUG)
+                                System.out.println("baseMessage onNext "+ JSON.toJSONString(baseMessage));
+                            acceptedTask();
+                            task_accepted_entity = null;
+                        }
+
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                            if(BuildConfig.DEBUG)
+                                System.out.println("baseMessage onError "+JSON.toJSONString(baseMessage));
+                            G.showToast(TextUtils.isEmpty(baseMessage.getMsg()) ? "服务器错误,请稍候再试" : baseMessage.getMsg());
+                        }
+                    });
+        }
+    }
 }

+ 33 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/DialogToastAct.java

@@ -3,6 +3,7 @@ package com.sheep.gamegroup.view.activity;
 import android.app.Activity;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
+import android.text.TextUtils;
 import android.view.View;
 import android.widget.CheckBox;
 import android.widget.ImageView;
@@ -10,6 +11,7 @@ import android.widget.TextView;
 
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
+import com.sheep.gamegroup.model.entity.DialogEntity;
 import com.sheep.jiuyan.samllsheep.R;
 
 import org.greenrobot.eventbus.EventBus;
@@ -37,11 +39,26 @@ public class DialogToastAct extends Activity {
     @BindView(R.id.dialog_close)
     ImageView dialogClose;
 
+    private DialogEntity dialog_entity;
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.dialog_notice_layout);
         ButterKnife.bind(this);
+        dialog_entity = (DialogEntity) getIntent().getSerializableExtra("dialog_entity");
+        initView();
+    }
+
+    private void initView() {
+        if(dialog_entity == null){
+            return;
+        }
+        setView(titleTv, dialog_entity.getTitle());
+        setView(contentTv, dialog_entity.getContext());
+        setView(dialogAction, dialog_entity.getCancel());
+        setView(dialogSure, dialog_entity.getSure());
+
     }
 
     @OnClick({R.id.dialog_action, R.id.dialog_sure, R.id.dialog_close})
@@ -51,7 +68,10 @@ public class DialogToastAct extends Activity {
                 finish();
                 break;
             case R.id.dialog_sure:
-                EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.DIALOG_ACTIVITY_DOWNLOAD_FILE));
+                if(dialog_entity.getEventTypes() != null){
+                    EventBus.getDefault().post(new BigEvent().setEventTypes(dialog_entity.getEventTypes()));
+                }
+                setResult(RESULT_OK);
                 finish();
                 break;
             case R.id.dialog_close:
@@ -59,4 +79,16 @@ public class DialogToastAct extends Activity {
                 break;
         }
     }
+
+    private void setView(View view, String string){
+        if(!TextUtils.isEmpty(string)){
+            view.setVisibility(View.VISIBLE);
+            if(view instanceof TextView){
+                ((TextView)view).setText(string);
+            }
+
+        }else {
+            view.setVisibility(View.GONE);
+        }
+    }
 }

+ 312 - 12
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -16,37 +16,56 @@ import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSONObject;
+import com.arialyy.annotations.Download;
+import com.arialyy.aria.core.Aria;
+import com.arialyy.aria.core.download.DownloadTarget;
+import com.arialyy.aria.core.download.DownloadTask;
+import com.arialyy.aria.core.inf.IEntity;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
 import com.kfzs.duanduan.datashare.DDProviderHelper;
 import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
+import com.kfzs.duanduan.services.DownloadTaskService;
 import com.sheep.gamegroup.di.components.DaggerTaskDetailComponent;
 import com.sheep.gamegroup.di.modules.TaskDetailModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.DialogEntity;
 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.model.util.SheepSubscriber;
 import com.sheep.gamegroup.presenter.TaskDetailContract;
 import com.sheep.gamegroup.presenter.TaskDetailPresenter;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.AbsChooseImageActivity;
+import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 import org.greenrobot.eventbus.EventBus;
 
+import java.io.File;
+
 import javax.inject.Inject;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
+import go.kfzssafe.Kfzssafe;
+import me.iwf.photopicker.PhotoPicker;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.schedulers.Schedulers;
+
+import static com.sheep.jiuyan.samllsheep.utils.ClassFileHelper.DIR;
 
 /**
  * 任务详情页面
@@ -82,8 +101,13 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     private TaskEty taskEty;
     private TaskAcceptedEty task_accepted_entity;
 
+    //通过task_id找
+    private TaskReleaseEty taskReleaseEty;
+
     private int taskId = -1;
 
+    private int type;//-1:开始任务 1:下载 2:安装 3:打开  10:打开H5
+
 
     @Override
     protected int getLayoutId() {
@@ -104,6 +128,8 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         TitleBarUtils.getInstance()
                 .setTitle(activity, "任务详情")
                 .setTitleFinish(activity);
+        Aria.download(this).register();
+        mDownloadTaskService = new DownloadTaskService(this);
     }
 
     @Override
@@ -188,6 +214,123 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         }
     }
 
+    private void initWigget(){
+        taskEty = taskReleaseEty.getTask();
+        downLoadInfo = mDownloadTaskService.getDownloadTaskByUrl(taskEty);
+        webText.setWebChromeClient(new WebChromeClient(){
+
+        });
+        webText.getSettings().setJavaScriptEnabled(true);
+        webText.setWebViewClient(new WebViewClient(){
+            @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
+            @Override
+            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
+                view.loadDataWithBaseURL(null,request.getUrl().toString(), "text/html", "utf-8", null);
+                return true;
+            }
+        });
+        //封装头文件
+        String sHead=   "<html><head><meta name=\"viewport\" content=\"width=device-width, " +
+                "initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes\" />"+
+                "<style>img{max-width:100% !important;height:auto !important;}</style>"
+                +"<style>body{max-width:100% !important;}</style>"+"</head><body>";
+        webText.loadDataWithBaseURL(null,sHead + taskEty.getDesc() + "</body></html>", "text/html", "utf-8", null);
+        nameTv.setText(taskReleaseEty.getName()+"");
+        priceTv.setText("+"+ taskReleaseEty.getBonus() +"元");
+        dateTv.setText(TimeUtil.getDate(TimeUtil.FORMAT, Long.valueOf(taskEty.getUpdate_time()))+"");
+
+
+        Glide.with(SheepApp.mContext)
+                .load(taskEty.getIcon())
+                .apply(new RequestOptions().placeholder(R.drawable.icon)
+                        .dontAnimate())
+                .into(iconIv);
+
+
+        bottom_btn_layout.setVisibility(View.VISIBLE);
+        detailTaskTv.setVisibility(View.INVISIBLE);
+        if (!taskReleaseEty.isIs_running() || taskEty.getInspect_type() == 1){
+            btnUpImag.setVisibility(View.GONE);
+        }else {
+            taskEty.setRunTask(1);
+            btnUpImag.setVisibility(View.VISIBLE);
+        }
+        switch (taskEty.getTask_type()){
+            case 1:
+                if(taskReleaseEty.isIs_running()){
+                    type = 0;
+                    if (PackageUtil.isAppInstalled(SheepApp.mContext, taskEty.getPackage_names())) {
+                        type = 3;
+                        btnTaskItem.setText("开始游戏");
+                    }else if(!TextUtils.isEmpty(PackageUtil.isExistsFile(activity, taskEty.getPackage_names(), ""))){
+                        type = 2;
+                        btnTaskItem.setText("开始安装");
+                    }
+                    else {
+                        DownLoadInfo downLoadInfo = DDProviderHelper.getInstance()
+                                .getDownloadTaskToPackname(activity, taskEty.getPackage_names());
+                        if(downLoadInfo != null && !TextUtils.isEmpty(downLoadInfo.getMApkPath())){
+                            type = 2;
+                            btnTaskItem.setText("开始安装");
+                        }else {
+                            type = 1;
+                            btnTaskItem.setText("下载游戏");
+                        }
+
+                    }
+                }else {
+                    type = -1;
+                    btnTaskItem.setText("领取任务");
+                }
+                break;
+            case 2:
+                btnTaskItem.setText("信用卡注册");
+                break;
+            case 3:
+                if(taskReleaseEty.isIs_running()){
+                    type = 0;
+                    if (PackageUtil.isAppInstalled(SheepApp.mContext, taskEty.getPackage_names())) {
+                        type = 3;
+                        btnTaskItem.setText("打开应用");
+                    }else if(!TextUtils.isEmpty(PackageUtil.isExistsFile(activity, taskEty.getPackage_names(), ""))){
+                        type = 2;
+                        btnTaskItem.setText("开始安装");
+                    }
+                    else {
+                        DownLoadInfo downLoadInfo = DDProviderHelper.getInstance()
+                                .getDownloadTaskToPackname(activity, taskEty.getPackage_names());
+                        if(downLoadInfo != null && !TextUtils.isEmpty(downLoadInfo.getMApkPath())){
+                            type = 2;
+                            btnTaskItem.setText("开始安装");
+                        }else {
+                            type = 1;
+                            btnTaskItem.setText("下载应用");
+                        }
+
+                    }
+                }else {
+                    type = -1;
+                    btnTaskItem.setText("领取任务");
+                }
+                break;
+            case 4:
+                if(taskReleaseEty.isIs_running()){
+                    type = 10;
+                    btnTaskItem.setText("开始任务");
+                }else {
+                    type = -1;
+                    btnTaskItem.setText("领取任务");
+                }
+                break;
+
+        }
+//        if(taskEty.getTask_type() == 2){
+//            btnTaskItem.setText("信用卡注册");
+//        }
+
+        taskSchedule();
+    }
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -195,6 +338,11 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         ButterKnife.bind(this);
     }
 
+    /**
+     * 下载模块修改
+     */
+    private DownloadTaskService mDownloadTaskService;
+    DownLoadInfo downLoadInfo;
     @OnClick({R.id.detail_task_tv, R.id.web_text, R.id.ll_infos, R.id.btn_task_item, R.id.btn_up_imag})
     public void onViewClicked(View view) {
         switch (view.getId()) {
@@ -210,14 +358,57 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
             case R.id.ll_infos:
                 break;
             case R.id.btn_task_item:
-                if (PackageUtil.isAppInstalled(SheepApp.mContext, taskEty.getPackage_names())) {
-                    PackageUtil.startApp(SheepApp.mContext, taskEty.getPackage_names());
-                }else if(!TextUtils.isEmpty(PackageUtil.isExistsFile(activity, taskEty.getPackage_names(), ""))){
-                    PackageUtil.installApk(SheepApp.mContext, PackageUtil.isExistsFile(activity, taskEty.getPackage_names(), ""));
-                }
-                else {
-                    Jump2View.getInstance().goDialogActivityView(activity, taskEty, task_accepted_entity);
-                    UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DOWNLOAD);
+                switch (type){
+                    case -1:
+                        if(taskReleaseEty.getAccepted_task_id() > 0){
+                            Jump2View.getInstance()
+                                    .goNoticeAct(activity, new DialogEntity(null,
+                                            "是否放弃正在运行中的任务?",
+                                            "是",
+                                            "否",
+                                            null));
+                        }else {
+                            acceptedTask();
+                        }
+                        break;
+                    case 1://开始下载
+
+                        DownloadTarget task = null;
+                        if(TextUtils.isEmpty(taskReleaseEty.getTask().getDownload_link()) || !taskReleaseEty.getTask().getDownload_link().contains("http")){
+                            G.showToast("下载地址错误!");
+                            return;
+                        }
+                        task = Aria.download(this).load(taskReleaseEty.getTask().getDownload_link());
+
+                        String filePath = DIR+ File.separator+taskReleaseEty.getTask().getPackage_names()+ ClassFileHelper.FILE_SUFFIX;
+                        if(task.getTaskState() == IEntity.STATE_RUNNING){
+                            task.stop();
+                        } else if(task.getTaskState() == IEntity.STATE_FAIL){
+                            task.cancel(true);
+                            task.resetState();
+                            task.removeRecord();
+                        } else {
+                            task.setFilePath(filePath);
+                            task.start();
+                        }
+                        if(mDownloadTaskService.addDownloadTask(downLoadInfo)){
+                            //发送红点信息
+                            EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.TIPS_DOWN_ICON));
+                        }
+                        UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DOWNLOAD);
+                        break;
+                    case 2:
+                        PackageUtil.installApk(SheepApp.mContext, PackageUtil.isExistsFile(activity, taskEty.getPackage_names(), ""));
+                        break;
+                    case 3:
+                        PackageUtil.startApp(SheepApp.mContext, taskEty.getPackage_names());
+                        break;
+                    case 4:
+                        if(!TextUtils.isEmpty(taskEty.getExt())){
+                            Jump2View.getInstance()
+                                    .goWebview(activity, taskEty.getExt());
+                        }
+                        break;
                 }
                 break;
             case R.id.btn_up_imag:
@@ -239,10 +430,10 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                 if(taskEty.getTask_type() == 2){//信用卡
                     llInfos.addView(getStep("信用卡注册", "待完成", 0));
                 }else if (PackageUtil.isAppInstalled(SheepApp.mContext, taskEty.getPackage_names())) {
-                    llInfos.addView(getStep("下载游戏", "已完成", 0));
+                    llInfos.addView(getStep("APP下载", "已完成", 0));
                     llInfos.addView(getStep("完成任务", "进行中", 1));
                 } else {
-                    llInfos.addView(getStep("下载游戏", "待完成", 2));
+                    llInfos.addView(getStep("APP下载", "待完成", 2));
                 }
             } else {
                 llInfos.addView(getStep("领取任务", "待完成", 2));
@@ -299,8 +490,8 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
 
     @Override
     public void taskDescSuccess(BaseMessage baseMessage) {
-        TaskReleaseEty taskReleaseEty = JSONObject.parseObject(JSONObject.toJSONString(baseMessage.getData()), TaskReleaseEty.class);
-
+        taskReleaseEty = JSONObject.parseObject(JSONObject.toJSONString(baseMessage.getData()), TaskReleaseEty.class);
+        initWigget();
     }
 
     @Override
@@ -337,4 +528,113 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     protected void onGetNetImageUrl(String url) {
 
     }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if(requestCode == 0 && resultCode == RESULT_OK){
+            if(taskReleaseEty.getAccepted_task_id() > 0){
+                showProgress(true);
+                SheepApp.getInstance()
+                        .getNetComponent()
+                        .getApiService()
+                        .giveUpTask(taskReleaseEty.getAccepted_task_id())
+                        .subscribeOn(Schedulers.io())
+                        .observeOn(AndroidSchedulers.mainThread())
+                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                            @Override
+                            public void onError(BaseMessage baseMessage) {
+                                hideProgress();
+                                G.showToast(TextUtils.isEmpty(baseMessage.getMsg()) ? "服务器错误,请稍候再试" : baseMessage.getMsg());
+                            }
+
+                            @Override
+                            public void onNext(BaseMessage baseMessage) {
+
+                                acceptedTask();
+                            }
+                        });
+            }
+        }
+    }
+
+    /**
+     * 领取任务
+     */
+    private void acceptedTask(){
+        hideProgress();
+        showProgress(true);
+        JSONObject object = new JSONObject();
+        object.put("device_id", DeviceUtil.getDeviceId(activity));
+        object.put("release_task_id", Integer.valueOf(taskReleaseEty.getId()+""));
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .acceptedTask(object)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        hideProgress();
+                        G.showToast(TextUtils.isEmpty(baseMessage.getMsg()) ? "服务器错误,请稍候再试" : baseMessage.getMsg());
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        hideProgress();
+                        initData();
+                    }
+                });
+    }
+    @Download.onPre void onPre(DownloadTask task) {
+        if(task.getKey().equals(taskEty.getDownload_link())) {
+            btnTaskItem.setText("准备下载中");
+        }
+    }
+    @Download.onTaskStart void taskStart(DownloadTask task) {
+        if(task.getKey().equals(taskEty.getDownload_link())) {
+            btnTaskItem.setText("开始下载中");
+        }
+    }
+    @Download.onTaskResume void taskResume(DownloadTask task) {
+        if(task.getKey().equals(taskEty.getDownload_link())) {
+            btnTaskItem.setText("恢复下载中");
+        }
+    }
+    //在这里处理任务执行中的状态,如进度进度条的刷新
+    @Download.onTaskRunning protected void running(DownloadTask task) {
+        if(task.getKey().equals(taskEty.getDownload_link())) {
+            int p = task.getPercent();    //任务进度百分比
+            String speed = task.getConvertSpeed();    //转换单位后的下载速度,单位转换需要在配置文件中打开
+            long speed1 = task.getSpeed(); //原始byte长度速度
+            btnTaskItem.setText(p + "%");
+            System.out.println("Aria p " + p + ", speed = " + speed);
+        }
+    }
+
+    @Download.onTaskStop void taskStop(DownloadTask task) {
+        if(task.getKey().equals(taskEty.getDownload_link())) {
+            btnTaskItem.setText(CommonUtil.CONTINUE_DOWNLOAD);
+        }
+    }
+
+    @Download.onTaskCancel void taskCancel(DownloadTask task) {
+        if(task.getKey().equals(taskEty.getDownload_link())) {
+            btnTaskItem.setText("已经取消");
+        }
+    }
+
+    @Download.onTaskFail void taskFail(DownloadTask task) {
+        if(task.getKey().equals(taskEty.getDownload_link())) {
+            btnTaskItem.setText(CommonUtil.FAIL_DOWNLOAD);
+        }
+    }
+
+    @Download.onTaskComplete void taskComplete(DownloadTask task) {
+        if(task.getKey().equals(taskEty.getDownload_link())) {
+            //在这里处理任务完成的状态
+            btnTaskItem.setText(CommonUtil.START_INSTALL);
+        }
+    }
 }

+ 3 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/TaskListAct.java

@@ -275,6 +275,9 @@ public class TaskListAct extends BaseActivity implements TaskListContract.View,
         super.onActivityResult(requestCode, resultCode, data);
 
         //获取图片路径
+        if(requestCode == 0 && resultCode == Activity.RESULT_OK){
+            adp.uploadImag(activity);
+        }else
         if (requestCode == 1 && resultCode == Activity.RESULT_OK && data != null) {
             Uri selectedImage = data.getData();
             String[] filePathColumns = {MediaStore.Images.Media.DATA};

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

@@ -48,7 +48,7 @@ public class TryMakeMoneyact extends BaseActivity {
 
         mAdapter = new AdpTryMakemoney(getSupportFragmentManager(), this);
         mAdapter.add(FgtTryMakeMoney.newInstance(0), titles[0]);
-        mAdapter.add(FgtTryMakeMoney.newInstance(1), titles[1]);
+        mAdapter.add(FgtTryMakeMoney.newInstance(2), titles[1]);
 //        mAdapter.add(FgtTryMakeMoney2.newInstance(0), titles[0]);
 //        mAdapter.add(FgtTryMakeMoney2.newInstance(1), titles[1]);
         pager.setAdapter(mAdapter);

+ 16 - 1
app/src/main/java/com/sheep/gamegroup/view/adapter/TaskListItemAdp.java

@@ -14,9 +14,11 @@ import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
+import com.sheep.gamegroup.model.entity.DialogEntity;
 import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
 import com.sheep.gamegroup.presenter.TaskListPresenter;
 import com.sheep.gamegroup.presenter.TryMakeMoneyPresenter;
+import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.jiuyan.samllsheep.R;
 
@@ -88,6 +90,19 @@ public class TaskListItemAdp extends BaseAdapter {
         holder.price_tv.setText(returnValue(ety));
         if(ety.getStatus() == 6){//审核失败
             holder.detail_task_tv.setVisibility(View.VISIBLE);
+            convertView.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    Jump2View.getInstance()
+                            .goNoticeAct(context,
+                                    new DialogEntity(
+                                            "审核失败",
+                                            ety.getRemarks(),
+                                            "重新提交",
+                                            "取 消",
+                                    EventTypes.TASK_AGAIN_UPLOAD_FILE));
+                }
+            });
         }else {
             holder.detail_task_tv.setVisibility(View.GONE);
         }
@@ -148,7 +163,7 @@ public class TaskListItemAdp extends BaseAdapter {
     /**
      * update file
      */
-    private void uploadImag(Context context) {
+    public void uploadImag(Context context) {
         Intent intent = new Intent(Intent.ACTION_PICK,
                 android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
         ((Activity)context).startActivityForResult(intent, 1);

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

@@ -11,6 +11,7 @@ import android.net.Uri;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
+import android.text.Html;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -151,16 +152,23 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
             @Override
             public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int i) {
                     viewHolder.itemView.setTag(TAG_ID_TEMP, etyList.get(i).getId());
+                    TextView detail_task_tv = viewHolder.itemView.findViewById(R.id.detail_task_tv);
                 if(i == 0){
                     viewHolder.itemView.findViewById(R.id.item_title_tv).setVisibility(View.VISIBLE);
-                    viewHolder.itemView.findViewById(R.id.item_title_iv).setVisibility(View.VISIBLE);
+                    viewHolder.itemView.findViewById(R.id.item_title_iv).setVisibility(View.GONE);
                     String titleStr = "推荐";
+                    int resourceId = R.mipmap.task_hot_icon;
                     switch (type){
                         case 0:
                             titleStr = "推荐";
                             break;
                         case 1:
                             titleStr = "热门任务";
+                            viewHolder.itemView.findViewById(R.id.item_title_iv).setVisibility(View.VISIBLE);
+                            Glide.with(context)
+                                    .load(resourceId)
+                                    .apply(new RequestOptions().placeholder(resourceId))
+                                    .into((ImageView) viewHolder.itemView.findViewById(R.id.item_title_iv));
                             break;
                         case 2:
                             titleStr = "即将开始";
@@ -170,9 +178,6 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                             break;
                     }
                     ((TextView)viewHolder.itemView.findViewById(R.id.item_title_tv)).setText(titleStr+"");
-                    Glide.with(context)
-                            .load(new RequestOptions().placeholder(R.mipmap.task_hot_icon))
-                            .into((ImageView) viewHolder.itemView.findViewById(R.id.item_title_iv));
 
                 }else{
                     viewHolder.itemView.findViewById(R.id.item_title_tv).setVisibility(View.GONE);
@@ -183,13 +188,27 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                 }else {
                     viewHolder.itemView.findViewById(R.id.line_tv).setVisibility(View.VISIBLE);
                 }
+                switch (type){
+                    case 2://即将开始
+                        detail_task_tv.setText("即将开始");
+                        detail_task_tv.setBackground(context.getResources().getDrawable(R.drawable.sp_rectangle_bg_gray_radius));
+                        detail_task_tv.setEnabled(false);
+                        viewHolder.itemView.setEnabled(false);
+                        break;
+                    default:
+                        detail_task_tv.setText("领取任务");
+                        detail_task_tv.setBackground(context.getResources().getDrawable(R.drawable.sp_bg_gradient_rectangle_blue));
+                        detail_task_tv.setEnabled(true);
+                        viewHolder.itemView.setEnabled(true);
+                        break;
+                }
                 viewHolder.itemView.findViewById(R.id.cancel_task_tv).setVisibility(View.GONE);
                 ((TextView)viewHolder.itemView.findViewById(R.id.item_anem_tv)).setText(etyList.get(i).getName()+"");
                 ((TextView)viewHolder.itemView.findViewById(R.id.item_num_tv)).setText("剩余"+ etyList.get(i).getLast_num()+"份");
                 ((TextView)viewHolder.itemView.findViewById(R.id.item_money)).setText("+"+ etyList.get(i).getBonus() +"元");
                 ((TextView)viewHolder.itemView.findViewById(R.id.item_date_tv)).setText(
                         "截止时间:" + TimeUtil.getDate(TimeUtil.FORMAT, Long.valueOf(etyList.get(i).getDeadline()))+"");
-                ((TextView)viewHolder.itemView.findViewById(R.id.detail_task_tv)).setText("领取任务");
+
                 ((TextView)viewHolder.itemView.findViewById(R.id.detail_task_tv)).setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {
@@ -218,7 +237,8 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                         taskEty.setBonus(etyList.get(i).getBonus());
                         taskEty.setRelease_task_id(etyList.get(i).getId());
                         taskEty.setName(etyList.get(i).getName());
-                        Jump2View.getInstance().goTaskDetailView(context, taskEty, taskAcceptedEty);
+//                        Jump2View.getInstance().goTaskDetailView(context, taskEty, taskAcceptedEty);
+                        Jump2View.getInstance().goTaskDetailView(context,  etyList.get(i).getId());
                     }
                 });
                 setDebugDownLoad(context, viewHolder.itemView, etyList.get(i).getTask());
@@ -304,7 +324,8 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                         taskEty.setRelease_task_id(etyList.get(i).getRelease_task().getId());
                         taskEty.setAcceptedTaskId(etyList.get(i).getId());
                         taskEty.setName(etyList.get(i).getRelease_task().getName());
-                        Jump2View.getInstance().goTaskDetailView(context, taskEty, taskAcceptedEty);
+//                        Jump2View.getInstance().goTaskDetailView(context, taskEty, taskAcceptedEty);
+                        Jump2View.getInstance().goTaskDetailView(context,  taskAcceptedEty.getRelease_task().getId());
                         UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DETAIL);
                     }
                 });
@@ -332,15 +353,15 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
 
                         @Override
                         public void onTimerTick(long millisUntilFinished, int counTime) {
-                            countdown_tv.setText(CommonUtil.getInstance().assemblyString(TimeUtil.getHours(millisUntilFinished))+"");
+                            countdown_tv.setText(Html.fromHtml(CommonUtil.getInstance().assemblyString(TimeUtil.getHours(millisUntilFinished))+""));
                         }
 
                         @Override
                         public void onTimerFinish() {
                             countdown_tv.setVisibility(View.GONE);
-                            presenter.giveUpTask(etyList.get(i).getId());
-                            //暂停下载
-                            CommonUtil.getInstance().stopDownloadTask(mContext, etyList.get(i).getRelease_task().getTask().getDownload_link());
+//                            presenter.giveUpTask(etyList.get(i).getId());
+//                            //暂停下载
+//                            CommonUtil.getInstance().stopDownloadTask(mContext, etyList.get(i).getRelease_task().getTask().getDownload_link());
                         }
                     };
                     selfCountDownTimer.reset(etyList.get(i).getRelease_task().getCancel_duration());

+ 11 - 2
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtTryMakeMoney.java

@@ -291,13 +291,22 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         }catch (Exception e){
             e.printStackTrace();
         }
-        presenter.returnTask(null);
+        if(type == 2){
+            mhandler.sendEmptyMessage(0);
+        }else {
+            presenter.returnTask(null);
+        }
+
     }
 
     @Override
     public void failReleaseTask2View(Object o) {
 
-        presenter.returnTask(null);
+        if(type == 2){
+            mhandler.sendEmptyMessage(0);
+        }else {
+            presenter.returnTask(null);
+        }
     }
 
     @Subscribe

+ 3 - 2
app/src/main/res/layout/homepage_item_currenttime_reward.xml

@@ -29,10 +29,11 @@
     <com.sunfusheng.marqueeview.MarqueeView
         android:id="@+id/upview1"
         android:layout_width="match_parent"
-        android:layout_height="30dp"
+        android:layout_height="wrap_content"
+        android:minHeight="30dp"
         app:mvAnimDuration="1000"
         app:mvDirection="bottom_to_top"
-        app:mvInterval="1000"
+        app:mvInterval="3000"
         app:mvTextColor="@color/white"
         app:mvTextSize="14sp"
         app:mvSingleLine="true" />

+ 1 - 1
app/src/main/res/layout/homepage_item_notice.xml

@@ -27,7 +27,7 @@
         android:layout_height="30dp"
         app:mvAnimDuration="1000"
         app:mvDirection="right_to_left"
-        app:mvInterval="1000"
+        app:mvInterval="3000"
         style="@style/txt_style_12"
         app:mvSingleLine="true"
         android:layout_gravity="center_vertical"/>

+ 2 - 1
app/src/main/res/layout/x_item_view.xml

@@ -26,4 +26,5 @@
     style="@style/txt_style_12"
     android:padding="5dp"
     android:gravity="center_vertical"
-    />
+    android:ellipsize="marquee"
+    android:lines="2"/>