Forráskód Böngészése

下载统一,修改部分bug

liujiangyao 8 éve
szülő
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.utils.ApkUtils;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
+import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.umeng.analytics.MobclickAgent;
 
@@ -27,6 +28,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static com.sheep.jiuyan.samllsheep.utils.ClassFileHelper.DIR;
+
 
 /**
  * <pre>
@@ -218,7 +221,8 @@ public class KFZSApp extends MultiDexApplication{
 
     // init FileDownloader
     private void initFileDownloader() {
-
+        ClassFileHelper.getInstance().createSDDirection();
+        String path_download = ClassFileHelper.DIR;
         // 1.create FileDownloadConfiguration.Builder
         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.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.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);
             ImageView imageView = new ImageView(mActivity);
             imageView.setOnClickListener(new ImageGlarryDrawable.cls_main(pos));
-            imageView.setScaleType(scaleType);
+//            imageView.setScaleType(scaleType);
             imageView.setImageDrawable(pic);
 //            Glide.with(mActivity).load(pic).apply(new RequestOptions().dontAnimate()).into(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("提交成功");
         try {
             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) {
             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.support.annotation.Nullable;
 import android.support.annotation.RequiresApi;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 import android.webkit.WebChromeClient;
@@ -15,6 +16,7 @@ import android.webkit.WebResourceRequest;
 import android.webkit.WebView;
 import android.webkit.WebViewClient;
 import android.widget.ImageView;
+import android.widget.ProgressBar;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
@@ -22,10 +24,17 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.bumptech.glide.Glide;
 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.EventDownloadHandler;
 import com.kfzs.duanduan.event.EventTypes;
+import com.kfzs.duanduan.services.DownloadTaskService;
 import com.kfzs.duanduan.services.KFDownloadServices;
 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.modules.TaskDialogModule;
 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.presenter.TaskDialogContract;
 import com.sheep.gamegroup.presenter.TaskDialogPresenter;
+import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.Jump2View;
 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 TaskStateAdapter stateAdapter;
 
-    private DownloadManager downloadManager;
-    DownloadInfo downloadInfo;
     private int type;//0,开始任务 1,开始试玩 2,开始下载 3,开始安装;4,信用卡跳转
-    private boolean isStartPause = false;//false:开始,true:暂停
     private boolean isDownLoad = false;//是否下载
     private String buttonStr = "开始任务";//是否下载
     private Activity activity;
-    Intent intentService;
+
+    /**
+     * 下载模块修改
+     */
+    private DownloadTaskService mDownloadTaskService;
+    DownLoadInfo downLoadInfo;
 
     @Inject
     TaskDialogPresenter preference;
@@ -116,12 +128,12 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
                     task_entity.setRunTask(1);
                     setBtnState();
                     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;
                  case 3://安装apk
 
@@ -130,10 +142,19 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
                          start_task_tv.setText("开始试玩");
                          type = 1;
                      }else{
-                         PackageUtil.installApk(activity, downloadInfo.getFileSavePath()+"");
-
+//                         PackageUtil.installApk(activity, downLoadInfo.getMApkPath()+"");
+                         start_task_tv.setText("开始安装");
+                         type = 3;
                      }
                      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);
         EventBus.getDefault().register(this);
         activity = this;
-        intentService = new Intent(activity, KFDownloadServices.class);
+
+        mDownloadTaskService = new DownloadTaskService(this);
+        mDownloadTaskService.restoreDownloadTaskStatus();
+
         initViews();
         initDatas();
-        doFiler();
     }
 
     private void initDatas() {
-        downloadManager = DownloadManager.getInstance();
         webview.loadUrl(task_entity.getBoot_address());
         Glide.with(this)
                 .load(task_entity.getIcon())
@@ -162,8 +184,6 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
         dialogItemSizeTv.setText( task_entity.getPackage_size() + "M");
         isDownLoad = PackageUtil.isAppInstalled(SheepApp.mContext, task_entity.getPackage_names());
 
-        isHaveLoad();
-//        downLoadApk();
 
         setBtnState();
 
@@ -242,22 +262,30 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
                     break;
                 case 2://开始下载
 //                    downLoadApk();
-                    if(!isStartPause){
+                    if(downLoadInfo.getMStatus()!= 2){
                         if(NetUtil.isMobile(activity)){
 //                            DialogAccountAbnormal.showDialog(activity,null, "当前网络处于非WIFI状态,确定下载吗?", "取消", "确定" ).show();
                             Jump2View.getInstance().goNoticeAct(activity, null);
                             return;
                         }
-                        startFiler();
+                        //Todo 合并下载模块t
+//                        startFiler();
+                        FileDownloader.start(task_entity.getDownload_link()+"");
                     }else {
                         FileDownloader.pause(task_entity.getDownload_link());
                     }
-                    isStartPause = !isStartPause;
 
                     break;
 
                 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;
                 case 4:
                     Jump2View.getInstance()
@@ -269,43 +297,6 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
             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(){
+        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;
         if(task_entity.getRunTask() == 0){//开始任务
             buttonStr = "开始任务";
@@ -329,12 +328,33 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
             if(isDownLoad){
                 buttonStr = "开始试玩";
                 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 {
                 buttonStr = "开始下载";
@@ -400,121 +420,60 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
     @Override
     protected void onDestroy() {
         super.onDestroy();
-        unFiler();
         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
     public void onEventMainThread(BigEvent event){
         switch (event.getEventTypes()){
             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;
         }
     }
 
+    @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();
         Bugly.init(getApplicationContext(), Config.BUGLY_APPID, BuildConfig.DEBUG);
         initNet();
-        createFileDownloader();//创建FileDownloader
         httpComponent = DaggerHttpComponent.builder().httpModule(new HttpModule()).build();
     }
 
@@ -69,29 +68,6 @@ public class SheepApp extends BaseApplication {
         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() {
 

+ 1 - 1
datashare/build.gradle

@@ -12,7 +12,7 @@ android {
     }
 
     greendao {
-        schemaVersion 2
+        schemaVersion 3
         targetGenDir 'src/main/java'
     }
     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.
 /**
- * Master of DAO (schema version 2): knows all DAOs.
+ * Master of DAO (schema version 3): knows all DAOs.
  */
 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. */
     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")
     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() {
         return this.mApkPath;
     }
@@ -230,12 +245,12 @@ public class DownLoadInfo {
         this.mChannelDownloadUrl = mChannelDownloadUrl;
     }
 
-    @Generated(hash = 2034500693)
+    @Generated(hash = 1556387369)
     public DownLoadInfo(Long mId, Long mCreateTime, Integer mDownloadTaskId,
             String mGameName, String mIconUrl, Integer mPercent, @NotNull Integer mGameID,
             Double mDownloadedSize, Double mTotalSize, Integer mStatus, String mDownloadUrl,
             String mChannelDownloadUrl, String mPackageName, Integer mVersionCode,
-            String mApkPath) {
+            String mApkPath, int whereFrom) {
         this.mId = mId;
         this.mCreateTime = mCreateTime;
         this.mDownloadTaskId = mDownloadTaskId;
@@ -251,6 +266,7 @@ public class DownLoadInfo {
         this.mPackageName = mPackageName;
         this.mVersionCode = mVersionCode;
         this.mApkPath = mApkPath;
+        this.whereFrom = whereFrom;
     }
 
     @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 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 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
                 "\"package_name\" TEXT," + // 12: mPackageName
                 "\"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. */
@@ -151,6 +153,7 @@ public class DownLoadInfoDao extends AbstractDao<DownLoadInfo, Long> {
         if (mApkPath != null) {
             stmt.bindString(15, mApkPath);
         }
+        stmt.bindLong(16, entity.getWhereFrom());
     }
 
     @Override
@@ -227,6 +230,7 @@ public class DownLoadInfoDao extends AbstractDao<DownLoadInfo, Long> {
         if (mApkPath != null) {
             stmt.bindString(15, mApkPath);
         }
+        stmt.bindLong(16, entity.getWhereFrom());
     }
 
     @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 + 12) ? null : cursor.getString(offset + 12), // mPackageName
             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;
     }
@@ -273,6 +278,7 @@ public class DownLoadInfoDao extends AbstractDao<DownLoadInfo, Long> {
         entity.setMPackageName(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12));
         entity.setMVersionCode(cursor.isNull(offset + 13) ? null : cursor.getInt(offset + 13));
         entity.setMApkPath(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14));
+        entity.setWhereFrom(cursor.getInt(offset + 15));
      }
     
     @Override