Ver código fonte

下载统一,修改部分bug

liujiangyao 8 anos atrás
pai
commit
360c240900

+ 5 - 1
app/src/main/java/com/kfzs/duanduan/KFZSApp.java

@@ -15,6 +15,7 @@ import com.kfzs.duanduan.db.DataSave;
 import com.kfzs.duanduan.services.KFDownloadServices;
 import com.kfzs.duanduan.services.KFDownloadServices;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
+import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.umeng.analytics.MobclickAgent;
 import com.umeng.analytics.MobclickAgent;
 
 
@@ -27,6 +28,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
+import static com.sheep.jiuyan.samllsheep.utils.ClassFileHelper.DIR;
+
 
 
 /**
 /**
  * <pre>
  * <pre>
@@ -218,7 +221,8 @@ public class KFZSApp extends MultiDexApplication{
 
 
     // init FileDownloader
     // init FileDownloader
     private void initFileDownloader() {
     private void initFileDownloader() {
-
+        ClassFileHelper.getInstance().createSDDirection();
+        String path_download = ClassFileHelper.DIR;
         // 1.create FileDownloadConfiguration.Builder
         // 1.create FileDownloadConfiguration.Builder
         FileDownloadConfiguration.Builder builder = new FileDownloadConfiguration.Builder(this);
         FileDownloadConfiguration.Builder builder = new FileDownloadConfiguration.Builder(this);
 
 

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

@@ -3,6 +3,8 @@ package com.sheep.gamegroup.util;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.widget.Toast;
 import android.widget.Toast;
 
 
+import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
+import com.kfzs.duanduan.services.DownloadTaskService;
 import com.sheep.gamegroup.model.entity.WithdrawalEty;
 import com.sheep.gamegroup.model.entity.WithdrawalEty;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 
@@ -99,4 +101,23 @@ public class CommonUtil {
         }
         }
 
 
     }
     }
+
+    /**
+     * 添加下载
+     */
+    public DownLoadInfo addNewDownloadTask(DownloadTaskService mDownloadTaskService, String gameName, String downloadUrl, String packageName,
+                                           int versionCode, String iconUrl, String size, Integer gameId,int whereFrom) {
+
+        DownLoadInfo task = new DownLoadInfo();
+        task.setMIconUrl(iconUrl);
+        task.setMGameName(gameName);
+        task.setMDownloadUrl(downloadUrl);
+        task.setMPackageName(packageName);
+        task.setMVersionCode(versionCode);
+        task.setMTotalSize(Double.valueOf(size));
+        task.setMGameID(gameId);
+        task.setWhereFrom(whereFrom);
+        mDownloadTaskService.addDownloadTask(task);
+        return task;
+    }
 }
 }

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

@@ -68,7 +68,7 @@ public class ImageGlarryDrawable {
             mList.add(pic);
             mList.add(pic);
             ImageView imageView = new ImageView(mActivity);
             ImageView imageView = new ImageView(mActivity);
             imageView.setOnClickListener(new ImageGlarryDrawable.cls_main(pos));
             imageView.setOnClickListener(new ImageGlarryDrawable.cls_main(pos));
-            imageView.setScaleType(scaleType);
+//            imageView.setScaleType(scaleType);
             imageView.setImageDrawable(pic);
             imageView.setImageDrawable(pic);
 //            Glide.with(mActivity).load(pic).apply(new RequestOptions().dontAnimate()).into(imageView);
 //            Glide.with(mActivity).load(pic).apply(new RequestOptions().dontAnimate()).into(imageView);
             mListImages.add(imageView);
             mListImages.add(imageView);

+ 6 - 3
app/src/main/java/com/sheep/gamegroup/view/activity/BindOrChangeWeixinAct.java

@@ -117,9 +117,12 @@ public class BindOrChangeWeixinAct extends BaseActivity implements BindOrChangeW
         G.showToast("提交成功");
         G.showToast("提交成功");
         try {
         try {
             UserEntity userEntity = MyDbManager.getInstance().dbFindUser();
             UserEntity userEntity = MyDbManager.getInstance().dbFindUser();
-            userEntity.setWx_openid("succes");
-            MyDbManager.getInstance().saveOrUpdateUser(userEntity);
-            SpUtils.saveWeixin(activity, "succes");
+            if(userEntity == null){
+                userEntity.setWx_openid("succes");
+                MyDbManager.getInstance().saveOrUpdateUser(userEntity);
+                SpUtils.saveWeixin(activity, "succes");
+
+            }
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
         }
         }

+ 128 - 169
app/src/main/java/com/sheep/gamegroup/view/activity/DialogActivity.java

@@ -8,6 +8,7 @@ import android.os.Handler;
 import android.os.Message;
 import android.os.Message;
 import android.support.annotation.Nullable;
 import android.support.annotation.Nullable;
 import android.support.annotation.RequiresApi;
 import android.support.annotation.RequiresApi;
+import android.text.TextUtils;
 import android.util.Log;
 import android.util.Log;
 import android.view.View;
 import android.view.View;
 import android.webkit.WebChromeClient;
 import android.webkit.WebChromeClient;
@@ -15,6 +16,7 @@ import android.webkit.WebResourceRequest;
 import android.webkit.WebView;
 import android.webkit.WebView;
 import android.webkit.WebViewClient;
 import android.webkit.WebViewClient;
 import android.widget.ImageView;
 import android.widget.ImageView;
+import android.widget.ProgressBar;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
@@ -22,10 +24,17 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
 import com.bumptech.glide.request.RequestOptions;
+import com.kfzs.duanduan.ActDownloadMgr;
+import com.kfzs.duanduan.adp.DownloadMgrAdapter;
+import com.kfzs.duanduan.bean.DownloadStatus;
+import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.BigEvent;
+import com.kfzs.duanduan.event.EventDownloadHandler;
 import com.kfzs.duanduan.event.EventTypes;
 import com.kfzs.duanduan.event.EventTypes;
+import com.kfzs.duanduan.services.DownloadTaskService;
 import com.kfzs.duanduan.services.KFDownloadServices;
 import com.kfzs.duanduan.services.KFDownloadServices;
 import com.kfzs.duanduan.utils.dlg.DeviceUtils;
 import com.kfzs.duanduan.utils.dlg.DeviceUtils;
+import com.kfzs.duanduan.view.KFProgressButton;
 import com.sheep.gamegroup.di.components.DaggerTaskDialogComponent;
 import com.sheep.gamegroup.di.components.DaggerTaskDialogComponent;
 import com.sheep.gamegroup.di.modules.TaskDialogModule;
 import com.sheep.gamegroup.di.modules.TaskDialogModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BaseMessage;
@@ -33,6 +42,7 @@ import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.TaskState;
 import com.sheep.gamegroup.model.entity.TaskState;
 import com.sheep.gamegroup.presenter.TaskDialogContract;
 import com.sheep.gamegroup.presenter.TaskDialogContract;
 import com.sheep.gamegroup.presenter.TaskDialogPresenter;
 import com.sheep.gamegroup.presenter.TaskDialogPresenter;
+import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.MyDbManager;
@@ -95,14 +105,16 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
     private List<TaskState> stateList = new ArrayList<>();//状态列表
     private List<TaskState> stateList = new ArrayList<>();//状态列表
     private TaskStateAdapter stateAdapter;
     private TaskStateAdapter stateAdapter;
 
 
-    private DownloadManager downloadManager;
-    DownloadInfo downloadInfo;
     private int type;//0,开始任务 1,开始试玩 2,开始下载 3,开始安装;4,信用卡跳转
     private int type;//0,开始任务 1,开始试玩 2,开始下载 3,开始安装;4,信用卡跳转
-    private boolean isStartPause = false;//false:开始,true:暂停
     private boolean isDownLoad = false;//是否下载
     private boolean isDownLoad = false;//是否下载
     private String buttonStr = "开始任务";//是否下载
     private String buttonStr = "开始任务";//是否下载
     private Activity activity;
     private Activity activity;
-    Intent intentService;
+
+    /**
+     * 下载模块修改
+     */
+    private DownloadTaskService mDownloadTaskService;
+    DownLoadInfo downLoadInfo;
 
 
     @Inject
     @Inject
     TaskDialogPresenter preference;
     TaskDialogPresenter preference;
@@ -116,12 +128,12 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
                     task_entity.setRunTask(1);
                     task_entity.setRunTask(1);
                     setBtnState();
                     setBtnState();
                     break;
                     break;
-                case 1:
-                    Bundle bundle = msg.getData();
-                    long total = bundle.getLong("total");
-                    long current = bundle.getLong("current");
+                case 1://下载中
+                    if(msg.obj instanceof DownloadStatus){
+                        DownloadStatus downloadStatus = (DownloadStatus) msg.obj;
+                        start_task_tv.setText((int) (downloadStatus.getFileDownloadedSize()*100/downloadStatus.getFileTotalSize() ) + "%");
+                    }
 
 
-                    start_task_tv.setText((int) (current*100/total));
                     break;
                     break;
                  case 3://安装apk
                  case 3://安装apk
 
 
@@ -130,10 +142,19 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
                          start_task_tv.setText("开始试玩");
                          start_task_tv.setText("开始试玩");
                          type = 1;
                          type = 1;
                      }else{
                      }else{
-                         PackageUtil.installApk(activity, downloadInfo.getFileSavePath()+"");
-
+//                         PackageUtil.installApk(activity, downLoadInfo.getMApkPath()+"");
+                         start_task_tv.setText("开始安装");
+                         type = 3;
                      }
                      }
                      break;
                      break;
+                case 4://被删除,重新下载
+
+                    setBtnState();
+                    break;
+                case 5://被删除,重新下载
+
+                    start_task_tv.setText("继续下载");
+                    break;
             }
             }
         }
         }
     };
     };
@@ -145,14 +166,15 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
         ButterKnife.bind(this);
         ButterKnife.bind(this);
         EventBus.getDefault().register(this);
         EventBus.getDefault().register(this);
         activity = this;
         activity = this;
-        intentService = new Intent(activity, KFDownloadServices.class);
+
+        mDownloadTaskService = new DownloadTaskService(this);
+        mDownloadTaskService.restoreDownloadTaskStatus();
+
         initViews();
         initViews();
         initDatas();
         initDatas();
-        doFiler();
     }
     }
 
 
     private void initDatas() {
     private void initDatas() {
-        downloadManager = DownloadManager.getInstance();
         webview.loadUrl(task_entity.getBoot_address());
         webview.loadUrl(task_entity.getBoot_address());
         Glide.with(this)
         Glide.with(this)
                 .load(task_entity.getIcon())
                 .load(task_entity.getIcon())
@@ -162,8 +184,6 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
         dialogItemSizeTv.setText( task_entity.getPackage_size() + "M");
         dialogItemSizeTv.setText( task_entity.getPackage_size() + "M");
         isDownLoad = PackageUtil.isAppInstalled(SheepApp.mContext, task_entity.getPackage_names());
         isDownLoad = PackageUtil.isAppInstalled(SheepApp.mContext, task_entity.getPackage_names());
 
 
-        isHaveLoad();
-//        downLoadApk();
 
 
         setBtnState();
         setBtnState();
 
 
@@ -242,22 +262,30 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
                     break;
                     break;
                 case 2://开始下载
                 case 2://开始下载
 //                    downLoadApk();
 //                    downLoadApk();
-                    if(!isStartPause){
+                    if(downLoadInfo.getMStatus()!= 2){
                         if(NetUtil.isMobile(activity)){
                         if(NetUtil.isMobile(activity)){
 //                            DialogAccountAbnormal.showDialog(activity,null, "当前网络处于非WIFI状态,确定下载吗?", "取消", "确定" ).show();
 //                            DialogAccountAbnormal.showDialog(activity,null, "当前网络处于非WIFI状态,确定下载吗?", "取消", "确定" ).show();
                             Jump2View.getInstance().goNoticeAct(activity, null);
                             Jump2View.getInstance().goNoticeAct(activity, null);
                             return;
                             return;
                         }
                         }
-                        startFiler();
+                        //Todo 合并下载模块t
+//                        startFiler();
+                        FileDownloader.start(task_entity.getDownload_link()+"");
                     }else {
                     }else {
                         FileDownloader.pause(task_entity.getDownload_link());
                         FileDownloader.pause(task_entity.getDownload_link());
                     }
                     }
-                    isStartPause = !isStartPause;
 
 
                     break;
                     break;
 
 
                 case 3://开始安装
                 case 3://开始安装
-                    PackageUtil.installApk(activity, downloadInfo.getFileSavePath()+"");
+                    isDownLoad = PackageUtil.isAppInstalled(SheepApp.mContext, task_entity.getPackage_names());
+                    if(isDownLoad){
+                        buttonStr = "开始试玩";
+                        type = 1;
+                        toTestPlay();
+                        return;
+                    }
+                    PackageUtil.installApk(activity, downLoadInfo.getMApkPath()+"");
                     break;
                     break;
                 case 4:
                 case 4:
                     Jump2View.getInstance()
                     Jump2View.getInstance()
@@ -269,43 +297,6 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
             e.printStackTrace();
             e.printStackTrace();
         }
         }
     }
     }
-
-    /**
-     * 判断apk是否下载过
-     */
-    private DownloadInfo isHaveLoad(){
-        if (task_entity != null) {
-            ClassFileHelper.getInstance().createSDDirection();
-            File mApkPath = new File(ClassFileHelper.DIR, task_entity.getTask_name() + ClassFileHelper.FILE_SUFFIX);
-            downloadInfo = MyDbManager.getInstance().dbFindDownLoad(task_entity.getTask_name(), mApkPath.getAbsolutePath());
-            if (!mApkPath.exists()) {
-                downloadInfo = new DownloadInfo();
-                downloadInfo.setUrl(task_entity.getDownload_link());
-                downloadInfo.setAutoRename(false);
-                downloadInfo.setAutoResume(true);
-                downloadInfo.setLabel(task_entity.getTask_name());
-                downloadInfo.setFileSavePath(mApkPath.getAbsolutePath());
-                downloadInfo.setIcon(task_entity.getIcon());
-                downloadInfo.setState(DownloadState.STARTED);
-                downloadInfo.setPkgName(task_entity.getPackage_names());
-                MyDbManager.getInstance().saveOrUpdateUser(downloadInfo);//保存到数据库
-            }else if (downloadInfo == null){
-                downloadInfo = new DownloadInfo();
-                downloadInfo.setUrl(task_entity.getDownload_link());
-                downloadInfo.setAutoRename(false);
-                downloadInfo.setAutoResume(true);
-                downloadInfo.setLabel(task_entity.getTask_name());
-                downloadInfo.setFileSavePath(mApkPath.getAbsolutePath());
-                downloadInfo.setIcon(task_entity.getIcon());
-                downloadInfo.setState(DownloadState.FINISHED);
-                downloadInfo.setPkgName(task_entity.getPackage_names());
-                MyDbManager.getInstance().saveOrUpdateUser(downloadInfo);//保存到数据库
-            }else{
-                downloadInfo.setState(DownloadState.FINISHED);
-            }
-        }
-        return downloadInfo;
-    }
     /**
     /**
      * 去试玩
      * 去试玩
      */
      */
@@ -317,6 +308,14 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
      * 按钮状态
      * 按钮状态
      */
      */
     private void setBtnState(){
     private void setBtnState(){
+        downLoadInfo = mDownloadTaskService.getDownloadTaskByUrl(task_entity.getDownload_link());
+        if(downLoadInfo == null){
+            CommonUtil.getInstance()
+                .addNewDownloadTask(mDownloadTaskService, task_entity.getTask_name(), task_entity.getDownload_link(), task_entity.getPackage_names(),
+                        Build.VERSION.SDK_INT, task_entity.getIcon(), task_entity.getPackage_size(),task_entity.getId(), 1);
+
+        }
+
         type = 0;
         type = 0;
         if(task_entity.getRunTask() == 0){//开始任务
         if(task_entity.getRunTask() == 0){//开始任务
             buttonStr = "开始任务";
             buttonStr = "开始任务";
@@ -329,12 +328,33 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
             if(isDownLoad){
             if(isDownLoad){
                 buttonStr = "开始试玩";
                 buttonStr = "开始试玩";
                 type = 1;
                 type = 1;
-            }else if(downloadInfo.getState() ==DownloadState.FINISHED ){
-                buttonStr = "开始安装";
-                type = 3;
-            }else if(downloadInfo.getState() ==DownloadState.STOPPED){
-                buttonStr = "继续下载";
-                type = 2;
+            }else if(mDownloadTaskService.isDownloadExists(task_entity.getDownload_link())){
+                //status 0 init  1 fail 2 donwloading  3 finish  4 paused  5  delete
+                switch (downLoadInfo.getMStatus()){
+                    case 2:
+                        buttonStr = "";
+                        type = 2;
+                        break;
+                    case 3:
+                        if(TextUtils.isEmpty(downLoadInfo.getMApkPath())){
+                            buttonStr = "开始下载";
+                            type = 2;
+                        }else{
+                            buttonStr = "开始安装";
+                            type = 3;
+                        }
+
+                        break;
+                    case 4:
+                        buttonStr = "继续下载";
+                        type = 2;
+                        break;
+                    default:
+                        buttonStr = "开始下载";
+                        type = 2;
+
+                        break;
+                }
             }
             }
             else {
             else {
                 buttonStr = "开始下载";
                 buttonStr = "开始下载";
@@ -400,121 +420,60 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
     @Override
     @Override
     protected void onDestroy() {
     protected void onDestroy() {
         super.onDestroy();
         super.onDestroy();
-        unFiler();
         EventBus.getDefault().unregister(this);
         EventBus.getDefault().unregister(this);
     }
     }
 
 
-    /*----------------------------*/
-    OnFileDownloadStatusListener onFileDownloadStatusListener = new OnFileDownloadStatusListener() {
-        @Override
-        public void onFileDownloadStatusWaiting(DownloadFileInfo downloadFileInfo) {
-
-        }
-
-        @Override
-        public void onFileDownloadStatusPreparing(DownloadFileInfo downloadFileInfo) {
-
-        }
-
-        @Override
-        public void onFileDownloadStatusPrepared(DownloadFileInfo downloadFileInfo) {
-
-        }
-
-        @Override
-        public void onFileDownloadStatusDownloading(DownloadFileInfo downloadFileInfo, float downloadSpeed, long
-                remainingTime) {
-            // 正在下载,downloadSpeed为当前下载速度,单位KB/s,remainingTime为预估的剩余时间,单位秒
-            Log.e("tDownloadedSizeLong---",downloadFileInfo.getDownloadedSizeLong()+"");
-            Log.e("getFileSizeLong---",downloadFileInfo.getFileSizeLong()+"");
-            Log.e("getFileSizeLong---",(int)(downloadFileInfo.getDownloadedSizeLong()*100 /downloadFileInfo.getFileSizeLong()) + "%"+"");
-            start_task_tv.setText((int)(downloadFileInfo.getDownloadedSizeLong() * 100 /downloadFileInfo.getFileSizeLong() )+ "%");
-        }
-
-        @Override
-        public void onFileDownloadStatusPaused(DownloadFileInfo downloadFileInfo) {
-            start_task_tv.setText("继续下载");
-            Log.e("DownloadStatusPaused---",downloadFileInfo.getDownloadedSizeLong()+","+downloadFileInfo.getFileSizeLong());
-            if(downloadInfo != null)
-                downloadInfo.setState(DownloadState.STOPPED);
-        }
-
-        @Override
-        public void onFileDownloadStatusCompleted(DownloadFileInfo downloadFileInfo) {
-            if(downloadInfo != null)
-                downloadInfo.setState(DownloadState.FINISHED);
-            handler.sendEmptyMessage(3);
-        }
-
-        @Override
-        public void onFileDownloadStatusFailed(String s, DownloadFileInfo downloadFileInfo, FileDownloadStatusFailReason fileDownloadStatusFailReason) {
-
-        }
-    };
-    private OnDownloadFileChangeListener mOnDownloadFileChangeListener = new OnDownloadFileChangeListener() {
-        @Override
-        public void onDownloadFileCreated(DownloadFileInfo downloadFileInfo) {
-            // 一个新下载文件被创建,也许你需要同步你自己的数据存储,比如在你的业务数据库中增加一条记录
-        }
-        @Override
-        public void onDownloadFileUpdated(DownloadFileInfo downloadFileInfo, Type type) {
-            // 一个下载文件被更新,也许你需要同步你自己的数据存储,比如在你的业务数据库中更新一条记录
-        }
-        @Override
-        public void onDownloadFileDeleted(DownloadFileInfo downloadFileInfo) {
-            // 一个下载文件被删除,也许你需要同步你自己的数据存储,比如在你的业务数据库中删除一条记录
-        }
-    };
-    private void doFiler(){
-        FileDownloader.registerDownloadStatusListener(onFileDownloadStatusListener);
-        FileDownloader.registerDownloadFileChangeListener(mOnDownloadFileChangeListener);
-
-        try{
-
-//            intent.setAction("ITOP.MOBILE.SIMPLE.SERVICE.SENSORSERVICE");
-            stopService(intentService);
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-    private void unFiler(){
-        FileDownloader.unregisterDownloadStatusListener(onFileDownloadStatusListener);
-        FileDownloader.unregisterDownloadFileChangeListener(mOnDownloadFileChangeListener);
-        try {
-            startService(intentService);
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-    private void startFiler(){
-        ClassFileHelper.getInstance().createSDDirection();
-//        File mApkPath = new File(ClassFileHelper.DIR, task_entity.getTask_name() + ClassFileHelper.FILE_SUFFIX);
-        FileDownloader.detect(task_entity.getDownload_link(), new OnDetectBigUrlFileListener() {
-            @Override
-            public void onDetectNewDownloadFile(String url, String fileName, String saveDir, long fileSize) {
-                // 如果有必要,可以改变文件名称fileName和下载保存的目录saveDir
-                FileDownloader.createAndStart(url, ClassFileHelper.DIR, task_entity.getTask_name() + ClassFileHelper.FILE_SUFFIX);
-            }
-            @Override
-            public void onDetectUrlFileExist(String url) {
-                // 继续下载,自动会断点续传(如果服务器无法支持断点续传将从头开始下载)
-                FileDownloader.start(url);
-            }
-            @Override
-            public void onDetectUrlFileFailed(String url, DetectBigUrlFileFailReason failReason) {
-                // 探测一个网络文件失败了,具体查看failReason
-            }
-        });
-    }
-
     @Subscribe
     @Subscribe
     public void onEventMainThread(BigEvent event){
     public void onEventMainThread(BigEvent event){
         switch (event.getEventTypes()){
         switch (event.getEventTypes()){
             case DIALOG_ACTIVITY_DOWNLOAD_FILE:
             case DIALOG_ACTIVITY_DOWNLOAD_FILE:
-                isStartPause = !isStartPause;
-                startFiler();
+                if(task_entity != null){
+                    downLoadInfo = mDownloadTaskService.getDownloadTaskByUrl(task_entity.getDownload_link());
+                    FileDownloader.start(task_entity.getDownload_link()+"");
+
+                }
                 break;
                 break;
         }
         }
     }
     }
 
 
+    @Subscribe
+    public void onEventMainThread(final DownloadStatus info) {
+        if(task_entity.getDownload_link().equals(info.getDownloadUrl())){
+            downLoadInfo = mDownloadTaskService.getDownloadTaskByUrl(task_entity.getDownload_link());
+            EventDownloadHandler.newInstance(this, new EventDownloadHandler.OnDownCallback() {
+                @Override
+                public void downloading(String url, Integer progress) {
+                    Message message = new Message();
+                    message.obj = info;
+                    message.what = 1;
+                    handler.sendMessage(message);
+                }
+
+                @Override
+                public void downloadFinish(String downloadUrl) {
+                    downLoadInfo.setMApkPath(info.getApkPath()+"");
+                    downLoadInfo.setMStatus(3);
+                    mDownloadTaskService.addDownloadTask(downLoadInfo);
+                    handler.sendEmptyMessage(3);
+                }
+
+                @Override
+                public void downloadPause(String downloadUrl) {
+                    handler.sendEmptyMessage(5);
+                }
+
+                @Override
+                public void downloadFail(String url) {
+
+                    handler.sendEmptyMessage(5);
+                }
+
+                @Override
+                public void downloadDelete(String downloadUrl) {
+                    handler.sendEmptyMessage(4);
+                }
+            }).setmTag(activity.getClass().getCanonicalName()).handlDownloadResult(info);
+        }
+    }
+
 }
 }

+ 0 - 24
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -61,7 +61,6 @@ public class SheepApp extends BaseApplication {
         initGoble();
         initGoble();
         Bugly.init(getApplicationContext(), Config.BUGLY_APPID, BuildConfig.DEBUG);
         Bugly.init(getApplicationContext(), Config.BUGLY_APPID, BuildConfig.DEBUG);
         initNet();
         initNet();
-        createFileDownloader();//创建FileDownloader
         httpComponent = DaggerHttpComponent.builder().httpModule(new HttpModule()).build();
         httpComponent = DaggerHttpComponent.builder().httpModule(new HttpModule()).build();
     }
     }
 
 
@@ -69,29 +68,6 @@ public class SheepApp extends BaseApplication {
         return httpComponent;
         return httpComponent;
     }
     }
 
 
-    private void createFileDownloader() {
-
-        ClassFileHelper.getInstance().createSDDirection();
-        // 1、创建Builder
-        FileDownloadConfiguration.Builder builder = new FileDownloadConfiguration.Builder(this);
-
-        // 2.配置Builder
-// 配置下载文件保存的文件夹
-        builder.configFileDownloadDir(ClassFileHelper.DIR);
-// 配置同时下载任务数量,如果不配置默认为2
-        builder.configDownloadTaskSize(3);
-// 配置失败时尝试重试的次数,如果不配置默认为0不尝试
-        builder.configRetryDownloadTimes(5);
-// 开启调试模式,方便查看日志等调试相关,如果不配置默认不开启
-        builder.configDebugMode(true);
-// 配置连接网络超时时间,如果不配置默认为15秒
-        builder.configConnectTimeout(25000);// 25秒
-
-// 3、使用配置文件初始化FileDownloader
-        FileDownloadConfiguration configuration = builder.build();
-        org.wlf.filedownloader.FileDownloader.init(configuration);
-    }
-
 
 
     public static void removeAllActivity() {
     public static void removeAllActivity() {
 
 

+ 1 - 1
datashare/build.gradle

@@ -12,7 +12,7 @@ android {
     }
     }
 
 
     greendao {
     greendao {
-        schemaVersion 2
+        schemaVersion 3
         targetGenDir 'src/main/java'
         targetGenDir 'src/main/java'
     }
     }
     buildTypes {
     buildTypes {

+ 2 - 2
datashare/src/main/java/com/kfzs/duanduan/data/graph/provider/channel/DaoMaster.java

@@ -18,10 +18,10 @@ import com.kfzs.duanduan.datashare.provider.download.DownLoadInfoDao;
 
 
 // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
 // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
 /**
 /**
- * Master of DAO (schema version 2): knows all DAOs.
+ * Master of DAO (schema version 3): knows all DAOs.
  */
  */
 public class DaoMaster extends AbstractDaoMaster {
 public class DaoMaster extends AbstractDaoMaster {
-    public static final int SCHEMA_VERSION = 2;
+    public static final int SCHEMA_VERSION = 3;
 
 
     /** Creates underlying database table using DAOs. */
     /** Creates underlying database table using DAOs. */
     public static void createAllTables(Database db, boolean ifNotExists) {
     public static void createAllTables(Database db, boolean ifNotExists) {

+ 18 - 2
datashare/src/main/java/com/kfzs/duanduan/datashare/provider/download/DownLoadInfo.java

@@ -110,6 +110,21 @@ public class DownLoadInfo {
     @Property(nameInDb = "apk_path")
     @Property(nameInDb = "apk_path")
     private String mApkPath;
     private String mApkPath;
 
 
+    /**
+     * where from
+     * 0:默认;1:任务模块来的
+     */
+    @Property(nameInDb = "where_from")
+    private int whereFrom;
+
+    public int getWhereFrom() {
+        return whereFrom;
+    }
+
+    public void setWhereFrom(int whereFrom) {
+        this.whereFrom = whereFrom;
+    }
+
     public String getMApkPath() {
     public String getMApkPath() {
         return this.mApkPath;
         return this.mApkPath;
     }
     }
@@ -230,12 +245,12 @@ public class DownLoadInfo {
         this.mChannelDownloadUrl = mChannelDownloadUrl;
         this.mChannelDownloadUrl = mChannelDownloadUrl;
     }
     }
 
 
-    @Generated(hash = 2034500693)
+    @Generated(hash = 1556387369)
     public DownLoadInfo(Long mId, Long mCreateTime, Integer mDownloadTaskId,
     public DownLoadInfo(Long mId, Long mCreateTime, Integer mDownloadTaskId,
             String mGameName, String mIconUrl, Integer mPercent, @NotNull Integer mGameID,
             String mGameName, String mIconUrl, Integer mPercent, @NotNull Integer mGameID,
             Double mDownloadedSize, Double mTotalSize, Integer mStatus, String mDownloadUrl,
             Double mDownloadedSize, Double mTotalSize, Integer mStatus, String mDownloadUrl,
             String mChannelDownloadUrl, String mPackageName, Integer mVersionCode,
             String mChannelDownloadUrl, String mPackageName, Integer mVersionCode,
-            String mApkPath) {
+            String mApkPath, int whereFrom) {
         this.mId = mId;
         this.mId = mId;
         this.mCreateTime = mCreateTime;
         this.mCreateTime = mCreateTime;
         this.mDownloadTaskId = mDownloadTaskId;
         this.mDownloadTaskId = mDownloadTaskId;
@@ -251,6 +266,7 @@ public class DownLoadInfo {
         this.mPackageName = mPackageName;
         this.mPackageName = mPackageName;
         this.mVersionCode = mVersionCode;
         this.mVersionCode = mVersionCode;
         this.mApkPath = mApkPath;
         this.mApkPath = mApkPath;
+        this.whereFrom = whereFrom;
     }
     }
 
 
     @Generated(hash = 1743687477)
     @Generated(hash = 1743687477)

+ 8 - 2
datashare/src/main/java/com/kfzs/duanduan/datashare/provider/download/DownLoadInfoDao.java

@@ -39,6 +39,7 @@ public class DownLoadInfoDao extends AbstractDao<DownLoadInfo, Long> {
         public final static Property MPackageName = new Property(12, String.class, "mPackageName", false, "package_name");
         public final static Property MPackageName = new Property(12, String.class, "mPackageName", false, "package_name");
         public final static Property MVersionCode = new Property(13, Integer.class, "mVersionCode", false, "version_code");
         public final static Property MVersionCode = new Property(13, Integer.class, "mVersionCode", false, "version_code");
         public final static Property MApkPath = new Property(14, String.class, "mApkPath", false, "apk_path");
         public final static Property MApkPath = new Property(14, String.class, "mApkPath", false, "apk_path");
+        public final static Property WhereFrom = new Property(15, int.class, "whereFrom", false, "where_from");
     }
     }
 
 
 
 
@@ -68,7 +69,8 @@ public class DownLoadInfoDao extends AbstractDao<DownLoadInfo, Long> {
                 "\"channel_download_url\" TEXT UNIQUE ," + // 11: mChannelDownloadUrl
                 "\"channel_download_url\" TEXT UNIQUE ," + // 11: mChannelDownloadUrl
                 "\"package_name\" TEXT," + // 12: mPackageName
                 "\"package_name\" TEXT," + // 12: mPackageName
                 "\"version_code\" INTEGER," + // 13: mVersionCode
                 "\"version_code\" INTEGER," + // 13: mVersionCode
-                "\"apk_path\" TEXT);"); // 14: mApkPath
+                "\"apk_path\" TEXT," + // 14: mApkPath
+                "\"where_from\" INTEGER NOT NULL );"); // 15: whereFrom
     }
     }
 
 
     /** Drops the underlying database table. */
     /** Drops the underlying database table. */
@@ -151,6 +153,7 @@ public class DownLoadInfoDao extends AbstractDao<DownLoadInfo, Long> {
         if (mApkPath != null) {
         if (mApkPath != null) {
             stmt.bindString(15, mApkPath);
             stmt.bindString(15, mApkPath);
         }
         }
+        stmt.bindLong(16, entity.getWhereFrom());
     }
     }
 
 
     @Override
     @Override
@@ -227,6 +230,7 @@ public class DownLoadInfoDao extends AbstractDao<DownLoadInfo, Long> {
         if (mApkPath != null) {
         if (mApkPath != null) {
             stmt.bindString(15, mApkPath);
             stmt.bindString(15, mApkPath);
         }
         }
+        stmt.bindLong(16, entity.getWhereFrom());
     }
     }
 
 
     @Override
     @Override
@@ -251,7 +255,8 @@ public class DownLoadInfoDao extends AbstractDao<DownLoadInfo, Long> {
             cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // mChannelDownloadUrl
             cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // mChannelDownloadUrl
             cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // mPackageName
             cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // mPackageName
             cursor.isNull(offset + 13) ? null : cursor.getInt(offset + 13), // mVersionCode
             cursor.isNull(offset + 13) ? null : cursor.getInt(offset + 13), // mVersionCode
-            cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // mApkPath
+            cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14), // mApkPath
+            cursor.getInt(offset + 15) // whereFrom
         );
         );
         return entity;
         return entity;
     }
     }
@@ -273,6 +278,7 @@ public class DownLoadInfoDao extends AbstractDao<DownLoadInfo, Long> {
         entity.setMPackageName(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12));
         entity.setMPackageName(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12));
         entity.setMVersionCode(cursor.isNull(offset + 13) ? null : cursor.getInt(offset + 13));
         entity.setMVersionCode(cursor.isNull(offset + 13) ? null : cursor.getInt(offset + 13));
         entity.setMApkPath(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14));
         entity.setMApkPath(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14));
+        entity.setWhereFrom(cursor.getInt(offset + 15));
      }
      }
     
     
     @Override
     @Override