瀏覽代碼

Merge remote-tracking branch 'origin/sheep_develop' into sheep_develop

zengjiebin 7 年之前
父節點
當前提交
dfffc8e848
共有 38 個文件被更改,包括 1771 次插入339 次删除
  1. 0 1
      .idea/gradle.xml
  2. 8 1
      app/build.gradle
  3. 4 4
      app/src/main/AndroidManifest.xml
  4. 15 8
      app/src/main/java/com/sheep/gamegroup/absBase/BaseActivity.java
  5. 1 1
      app/src/main/java/com/sheep/gamegroup/event/EventDownloadHandler.java
  6. 256 0
      app/src/main/java/com/sheep/gamegroup/greendao/DDProviderHelper.java
  7. 83 0
      app/src/main/java/com/sheep/gamegroup/greendao/download/AppdownloadBean.java
  8. 181 0
      app/src/main/java/com/sheep/gamegroup/greendao/download/AppdownloadBeanDao.java
  9. 99 0
      app/src/main/java/com/sheep/gamegroup/greendao/download/DaoMaster.java
  10. 62 0
      app/src/main/java/com/sheep/gamegroup/greendao/download/DaoSession.java
  11. 281 0
      app/src/main/java/com/sheep/gamegroup/greendao/download/DownLoadInfo.java
  12. 307 0
      app/src/main/java/com/sheep/gamegroup/greendao/download/DownLoadInfoDao.java
  13. 1 1
      app/src/main/java/com/sheep/gamegroup/helper/DownloadHelper.java
  14. 1 1
      app/src/main/java/com/sheep/gamegroup/model/entity/DialogEntity.java
  15. 1 1
      app/src/main/java/com/sheep/gamegroup/model/entity/TaskEty.java
  16. 2 2
      app/src/main/java/com/sheep/gamegroup/receiver/AppAddOrDelReceiver.java
  17. 32 24
      app/src/main/java/com/sheep/gamegroup/util/ActivityManager.java
  18. 1 1
      app/src/main/java/com/sheep/gamegroup/util/CertificationUtil.java
  19. 1 1
      app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java
  20. 3 2
      app/src/main/java/com/sheep/gamegroup/util/DownloadUtil.java
  21. 281 179
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  22. 1 1
      app/src/main/java/com/sheep/gamegroup/util/TestUtil.java
  23. 1 1
      app/src/main/java/com/sheep/gamegroup/util/WebviewJs.java
  24. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActDownloadMgr.java
  25. 1 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActMiDong.java
  26. 78 62
      app/src/main/java/com/sheep/gamegroup/view/activity/ChangeTelAct.java
  27. 7 8
      app/src/main/java/com/sheep/gamegroup/view/activity/FeedbackAct.java
  28. 4 2
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java
  29. 0 2
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailCreditCardAct.java
  30. 6 0
      app/src/main/java/com/sheep/gamegroup/view/activity/WebviewAct.java
  31. 2 2
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdbMidong.java
  32. 4 4
      app/src/main/java/com/sheep/gamegroup/view/adapter/DownloadMgrAdapter.java
  33. 1 1
      app/src/main/java/com/sheep/gamegroup/view/adapter/TryMakeMoneyAdp.java
  34. 1 1
      app/src/main/java/com/sheep/gamegroup/view/dialog/DialogAccountAbnormal.java
  35. 2 2
      app/src/main/java/com/sheep/gamegroup/view/dialog/DialogMidong.java
  36. 29 23
      app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java
  37. 12 0
      app/src/main/res/values-w820dp/key_strings.xml
  38. 1 1
      settings.gradle

+ 0 - 1
.idea/gradle.xml

@@ -9,7 +9,6 @@
           <set>
             <option value="$PROJECT_DIR$" />
             <option value="$PROJECT_DIR$/app" />
-            <option value="$PROJECT_DIR$/datashare" />
             <option value="$PROJECT_DIR$/ucrop" />
             <option value="$PROJECT_DIR$/view" />
           </set>

+ 8 - 1
app/build.gradle

@@ -1,5 +1,6 @@
 apply plugin: 'com.android.application'
 apply plugin: 'com.jakewharton.butterknife'
+apply plugin: 'org.greenrobot.greendao'
 //apply plugin: 'realm-android'//Realm数据库
 android {
     compileSdkVersion androidConfigs.compileSdkVersion
@@ -20,6 +21,10 @@ android {
 //        }
         multiDexEnabled true
     }
+    greendao {
+        schemaVersion 10
+        targetGenDir 'src/main/java'
+    }
 //    compileOptions{
 //        sourceCompatibility org.gradle.api.JavaVersion.VERSION_1_8
 //        targetCompatibility org.gradle.api.JavaVersion.VERSION_1_8
@@ -233,7 +238,7 @@ dependencies {
     compile 'com.kf.framework:volleyplus:1.4.5@aar'
     compile "com.android.support:support-annotations:$supportLibVersion"
     compile "com.android.support:recyclerview-v7:$supportLibVersion"
-    compile project(':datashare')
+//    compile project(':datashare')
     compile files('libs/jackson-core-2.2.1.jar')
     compile files('libs/jackson-dataformat-xml-2.1.2.jar')
     compile 'io.reactivex:rxandroid:1.2.1'
@@ -274,6 +279,8 @@ dependencies {
     compile 'com.haibin:calendarview:3.4.4'
 
     compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-14'
+
+    compile 'org.greenrobot:greendao:3.2.2'
 }
 
 static def releaseTime() {

+ 4 - 4
app/src/main/AndroidManifest.xml

@@ -249,10 +249,10 @@
             android:hardwareAccelerated="false"
             android:screenOrientation="portrait" />
 
-        <provider
-            android:name="com.kfzs.duanduan.data.graph.provider.KFZSProvider"
-            android:authorities="com.kfzs.duanduan.data.graph.provider.${DUANDUAN_GRAPH}"
-            android:exported="true" />
+        <!--<provider-->
+            <!--android:name="com.kfzs.duanduan.data.graph.provider.KFZSProvider"-->
+            <!--android:authorities="com.kfzs.duanduan.data.graph.provider.${DUANDUAN_GRAPH}"-->
+            <!--android:exported="true" />-->
 
 
         <receiver android:name="com.sheep.gamegroup.receiver.AppAddOrDelReceiver">

+ 15 - 8
app/src/main/java/com/sheep/gamegroup/absBase/BaseActivity.java

@@ -3,12 +3,12 @@ package com.sheep.gamegroup.absBase;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.support.v7.app.AppCompatActivity;
-import android.view.KeyEvent;
 
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.view.dialog.DialogLoading;
 
 import butterknife.ButterKnife;
+import butterknife.Unbinder;
 
 /**
  * Created by kemllor on 2017/12/15.
@@ -17,13 +17,13 @@ import butterknife.ButterKnife;
 public abstract class BaseActivity extends AppCompatActivity {
 
     protected DialogLoading dialogLoading;
-
+    public Unbinder bind;
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(getLayoutId());
-        ButterKnife.bind(this);
+        bind = ButterKnife.bind(this);
         initView();
         initListener();
         initData();
@@ -58,7 +58,7 @@ public abstract class BaseActivity extends AppCompatActivity {
     protected void onResume() {
         super.onResume();
         Object action = DataUtil.getInstance().getAction(getClass().getSimpleName());
-        if(action != null){
+        if (action != null) {
             doNextAction(action);
         }
     }
@@ -67,16 +67,23 @@ public abstract class BaseActivity extends AppCompatActivity {
 
     public abstract void initView();
 
-    public void initListener(){
+    public void initListener() {
 
     }
 
-    public void initData(){
+    public void initData() {
 
     }
-    public void doNextAction(Object action){
 
-    }
+    public void doNextAction(Object action) {
 
+    }
 
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (this.bind != null) {
+            this.bind.unbind();
+        }
+    }
 }

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/event/EventDownloadHandler.java

@@ -2,9 +2,9 @@ package com.sheep.gamegroup.event;
 
 import android.content.Context;
 
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 import com.sheep.gamegroup.model.entity.DownloadStatus;
 import com.sheep.gamegroup.util.DownloadUtil;
-import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 import org.greenrobot.eventbus.EventBus;

+ 256 - 0
app/src/main/java/com/sheep/gamegroup/greendao/DDProviderHelper.java

@@ -0,0 +1,256 @@
+package com.sheep.gamegroup.greendao;
+
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+
+
+import com.sheep.gamegroup.greendao.download.DaoMaster;
+import com.sheep.gamegroup.greendao.download.DaoSession;
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
+import com.sheep.gamegroup.greendao.download.DownLoadInfoDao;
+
+import java.util.List;
+
+/**
+ * 端端privoder工具
+ *
+ * @author kemllor
+ * @date 2017/6/15   15:27
+ **/
+
+public class DDProviderHelper {
+
+    private static DDProviderHelper mInstance;
+
+    public static synchronized DDProviderHelper getInstance() {
+        if (mInstance == null) {
+            mInstance = new DDProviderHelper();
+        }
+        return mInstance;
+    }
+
+    private DDProviderHelper() {
+    }
+
+    /**
+     * 获取下载任务列表
+     *
+     * @param context
+     * @return
+     */
+    public List<DownLoadInfo> getDownloadList(Context context) {
+        List<DownLoadInfo> list = getDaossion(context).getDownLoadInfoDao().queryBuilder().build().list();
+        return list;
+    }
+
+
+    /**
+     * 更新下载任务状态;
+     *
+     * @param context
+     * @param info
+     */
+    public void updateDownload(Context context, DownLoadInfo info) {
+        DownLoadInfoDao loadInfoDao = getDaossion(context).getDownLoadInfoDao();
+        loadInfoDao.update(info);
+    }
+
+    /**
+     * 添加或更新任务
+     *
+     * @param context
+     * @param info
+     */
+    public boolean addOrUpDataDownloadTask(Context context, DownLoadInfo info) {
+        DownLoadInfoDao infoDao = getDaossion(context).getDownLoadInfoDao();
+        DownLoadInfo downLoadInfo = infoDao
+                .queryBuilder()
+                .where(DownLoadInfoDao.Properties.MDownloadUrl.eq(info.getMDownloadUrl()))
+                .build()
+                .unique();
+        try{
+            if (downLoadInfo == null) {
+                infoDao.insert(info);
+                return true;
+            } else {
+                info.setMId(downLoadInfo.getMId());
+                infoDao.update(info);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return false;
+    }
+    /**
+     * 删除所有任务;
+     *
+     * @param context
+     */
+    public void deleteAllDownloadTask(Context context) {
+        DownLoadInfoDao loadInfoDao = getDaossion(context).getDownLoadInfoDao();
+        loadInfoDao.deleteAll();
+    }
+
+
+    /**
+     * 删除指定任务;
+     *
+     * @param context
+     * @param url
+     */
+    public boolean deleteDownloadTaskByUrl(Context context, String url) {
+        try {
+            DownLoadInfoDao loadInfoDao = getDaossion(context).getDownLoadInfoDao();
+            DownLoadInfo loadInfo = loadInfoDao.queryBuilder()
+                    .where(DownLoadInfoDao.Properties.MDownloadUrl.eq(url))
+                    .build()
+                    .unique();
+            loadInfoDao.delete(loadInfo);
+            return true;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+
+    private DaoMaster.DevOpenHelper openHelper;
+
+    private synchronized DaoSession getDaossion(Context context) {
+        if (openHelper == null) {
+            openHelper = new DaoMaster.DevOpenHelper(context, "dd.db");
+        }
+        return new DaoMaster(openHelper.getReadableDb()).newSession();
+    }
+
+    /**
+     * 获取下载中的任务;
+     *
+     * @param ctx
+     */
+    public List<DownLoadInfo> getDownloadingTask(Context ctx) {
+        List<DownLoadInfo> loadInfos = getDaossion(ctx)
+                .getDownLoadInfoDao()
+                .queryBuilder()
+                .where(DownLoadInfoDao.Properties.MStatus.eq(2))
+                .build()
+                .list();
+        return loadInfos;
+    }
+
+    /**
+     * 获取指定下载任务
+     *
+     * @param downloadUrl
+     */
+    public DownLoadInfo getDownloadTask(Context context, String downloadUrl) {
+        DownLoadInfo downLoadInfo = getDaossion(context)
+                .getDownLoadInfoDao()
+                .queryBuilder()
+                .where(DownLoadInfoDao.Properties.MDownloadUrl.eq(downloadUrl))
+                .build()
+                .unique();
+        return downLoadInfo;
+    }
+
+    /**
+     * 获取指定下载任务
+     *
+     * @param packName
+     */
+    public DownLoadInfo getDownloadTaskToPackname(Context context, String packName) {
+        DownLoadInfo downLoadInfo = getDaossion(context)
+                .getDownLoadInfoDao()
+                .queryBuilder()
+                .where(DownLoadInfoDao.Properties.MPackageName.eq(packName))
+                .limit(1)
+                .build()
+                .unique();
+        return downLoadInfo;
+    }
+
+    /**
+     * 下载任务完成
+     *
+     * @param ctx
+     * @param downloadUrl
+     * @param apkPath
+     */
+    public void setDownloadTaskFinish(Context ctx, String downloadUrl, String apkPath) {
+        DownLoadInfo downloadTask = getDownloadTask(ctx, downloadUrl);
+        if (downloadTask != null) {
+            downloadTask.setMApkPath(apkPath);
+            downloadTask.setMStatus(3);//DownloadTaskService.STATUS_FINISH
+            getDaossion(ctx).getDownLoadInfoDao().update(downloadTask);
+        }
+    }
+
+    /**
+     * 更新任务状态
+     *
+     * @param ctx
+     * @param percent
+     * @param downloadedSize
+     * @param totalSize
+     * @param downloadTaskId
+     * @param downloadUrl
+     */
+    public void updateDownloadPercent(Context ctx, int percent, double downloadedSize, double totalSize, int downloadTaskId, String downloadUrl, int state) {
+        DownLoadInfo downloadTask = getDownloadTask(ctx, downloadUrl);
+        if (downloadTask != null) {
+            downloadTask.setMPercent(percent);
+            downloadTask.setMTotalSize(totalSize);
+            downloadTask.setMDownloadedSize(downloadedSize);
+            downloadTask.setMDownloadTaskId(downloadTaskId);
+            downloadTask.setMStatus(state);//2下载中
+            updateDownload(ctx, downloadTask);
+        }
+    }
+
+
+    /**
+     * 改变任务状态
+     *
+     * @param ctx
+     * @param downloadUrl
+     * @param status
+     */
+    public boolean setDownloadTaskStatus(Context ctx, String downloadUrl, int status) {
+        try {
+            DownLoadInfo downloadTask = getDownloadTask(ctx, downloadUrl);
+            if (downloadTask != null) {
+                downloadTask.setMStatus(status);
+                updateDownload(ctx, downloadTask);
+                return true;
+            }
+            return false;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+
+    /**
+     * app启动  所有任务全部暂停
+     *
+     * @param context
+     */
+    public void restoreDownloadTaskStatus(Context context) {
+        DownLoadInfoDao downLoadInfoDao = getDaossion(context).getDownLoadInfoDao();
+        List<DownLoadInfo> list = downLoadInfoDao
+                .queryBuilder()
+                .whereOr(DownLoadInfoDao.Properties.MStatus.eq(0), DownLoadInfoDao.Properties.MStatus.eq(2))
+                .build()
+                .list();
+
+        if (list != null && list.size() > 0) {
+            for (int i = 0; i < list.size(); i++) {
+                DownLoadInfo loadInfo = list.get(i);
+                loadInfo.setMStatus(4);
+                downLoadInfoDao.update(loadInfo);
+            }
+        }
+    }
+}

+ 83 - 0
app/src/main/java/com/sheep/gamegroup/greendao/download/AppdownloadBean.java

@@ -0,0 +1,83 @@
+package com.sheep.gamegroup.greendao.download;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+import org.greenrobot.greendao.annotation.NotNull;
+import org.greenrobot.greendao.annotation.Unique;
+
+/**
+ * Created by Administrator on 2017/12/25.
+ */
+
+@Entity
+public class AppdownloadBean {
+    @Id
+    private Long mId;
+
+    private String name;
+    private String icon;
+    private String url;
+    @NotNull
+    @Unique
+    private String pkgName;
+    private String interfaceName;
+    private int staus = 0;//1下载成功,2安装成功
+    public int getStaus() {
+        return this.staus;
+    }
+    public void setStaus(int staus) {
+        this.staus = staus;
+    }
+    public String getInterfaceName() {
+        return this.interfaceName;
+    }
+    public void setInterfaceName(String interfaceName) {
+        this.interfaceName = interfaceName;
+    }
+    public String getPkgName() {
+        return this.pkgName;
+    }
+    public void setPkgName(String pkgName) {
+        this.pkgName = pkgName;
+    }
+    public String getUrl() {
+        return this.url;
+    }
+    public void setUrl(String url) {
+        this.url = url;
+    }
+    public String getIcon() {
+        return this.icon;
+    }
+    public void setIcon(String icon) {
+        this.icon = icon;
+    }
+    public String getName() {
+        return this.name;
+    }
+    public void setName(String name) {
+        this.name = name;
+    }
+    public Long getMId() {
+        return this.mId;
+    }
+    public void setMId(Long mId) {
+        this.mId = mId;
+    }
+    @Generated(hash = 1920276973)
+    public AppdownloadBean(Long mId, String name, String icon, String url,
+            @NotNull String pkgName, String interfaceName, int staus) {
+        this.mId = mId;
+        this.name = name;
+        this.icon = icon;
+        this.url = url;
+        this.pkgName = pkgName;
+        this.interfaceName = interfaceName;
+        this.staus = staus;
+    }
+    @Generated(hash = 1344994525)
+    public AppdownloadBean() {
+    }
+
+}

+ 181 - 0
app/src/main/java/com/sheep/gamegroup/greendao/download/AppdownloadBeanDao.java

@@ -0,0 +1,181 @@
+package com.sheep.gamegroup.greendao.download;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/** 
+ * DAO for table "APPDOWNLOAD_BEAN".
+*/
+public class AppdownloadBeanDao extends AbstractDao<AppdownloadBean, Long> {
+
+    public static final String TABLENAME = "APPDOWNLOAD_BEAN";
+
+    /**
+     * Properties of entity AppdownloadBean.<br/>
+     * Can be used for QueryBuilder and for referencing column names.
+     */
+    public static class Properties {
+        public final static Property MId = new Property(0, Long.class, "mId", true, "_id");
+        public final static Property Name = new Property(1, String.class, "name", false, "NAME");
+        public final static Property Icon = new Property(2, String.class, "icon", false, "ICON");
+        public final static Property Url = new Property(3, String.class, "url", false, "URL");
+        public final static Property PkgName = new Property(4, String.class, "pkgName", false, "PKG_NAME");
+        public final static Property InterfaceName = new Property(5, String.class, "interfaceName", false, "INTERFACE_NAME");
+        public final static Property Staus = new Property(6, int.class, "staus", false, "STAUS");
+    }
+
+
+    public AppdownloadBeanDao(DaoConfig config) {
+        super(config);
+    }
+    
+    public AppdownloadBeanDao(DaoConfig config, DaoSession daoSession) {
+        super(config, daoSession);
+    }
+
+    /** Creates the underlying database table. */
+    public static void createTable(Database db, boolean ifNotExists) {
+        String constraint = ifNotExists? "IF NOT EXISTS ": "";
+        db.execSQL("CREATE TABLE " + constraint + "\"APPDOWNLOAD_BEAN\" (" + //
+                "\"_id\" INTEGER PRIMARY KEY ," + // 0: mId
+                "\"NAME\" TEXT," + // 1: name
+                "\"ICON\" TEXT," + // 2: icon
+                "\"URL\" TEXT," + // 3: url
+                "\"PKG_NAME\" TEXT NOT NULL UNIQUE ," + // 4: pkgName
+                "\"INTERFACE_NAME\" TEXT," + // 5: interfaceName
+                "\"STAUS\" INTEGER NOT NULL );"); // 6: staus
+    }
+
+    /** Drops the underlying database table. */
+    public static void dropTable(Database db, boolean ifExists) {
+        String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"APPDOWNLOAD_BEAN\"";
+        db.execSQL(sql);
+    }
+
+    @Override
+    protected final void bindValues(DatabaseStatement stmt, AppdownloadBean entity) {
+        stmt.clearBindings();
+ 
+        Long mId = entity.getMId();
+        if (mId != null) {
+            stmt.bindLong(1, mId);
+        }
+ 
+        String name = entity.getName();
+        if (name != null) {
+            stmt.bindString(2, name);
+        }
+ 
+        String icon = entity.getIcon();
+        if (icon != null) {
+            stmt.bindString(3, icon);
+        }
+ 
+        String url = entity.getUrl();
+        if (url != null) {
+            stmt.bindString(4, url);
+        }
+        stmt.bindString(5, entity.getPkgName());
+ 
+        String interfaceName = entity.getInterfaceName();
+        if (interfaceName != null) {
+            stmt.bindString(6, interfaceName);
+        }
+        stmt.bindLong(7, entity.getStaus());
+    }
+
+    @Override
+    protected final void bindValues(SQLiteStatement stmt, AppdownloadBean entity) {
+        stmt.clearBindings();
+ 
+        Long mId = entity.getMId();
+        if (mId != null) {
+            stmt.bindLong(1, mId);
+        }
+ 
+        String name = entity.getName();
+        if (name != null) {
+            stmt.bindString(2, name);
+        }
+ 
+        String icon = entity.getIcon();
+        if (icon != null) {
+            stmt.bindString(3, icon);
+        }
+ 
+        String url = entity.getUrl();
+        if (url != null) {
+            stmt.bindString(4, url);
+        }
+        stmt.bindString(5, entity.getPkgName());
+ 
+        String interfaceName = entity.getInterfaceName();
+        if (interfaceName != null) {
+            stmt.bindString(6, interfaceName);
+        }
+        stmt.bindLong(7, entity.getStaus());
+    }
+
+    @Override
+    public Long readKey(Cursor cursor, int offset) {
+        return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+    }    
+
+    @Override
+    public AppdownloadBean readEntity(Cursor cursor, int offset) {
+        AppdownloadBean entity = new AppdownloadBean( //
+            cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // mId
+            cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // name
+            cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // icon
+            cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // url
+            cursor.getString(offset + 4), // pkgName
+            cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // interfaceName
+            cursor.getInt(offset + 6) // staus
+        );
+        return entity;
+    }
+     
+    @Override
+    public void readEntity(Cursor cursor, AppdownloadBean entity, int offset) {
+        entity.setMId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+        entity.setName(cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1));
+        entity.setIcon(cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2));
+        entity.setUrl(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+        entity.setPkgName(cursor.getString(offset + 4));
+        entity.setInterfaceName(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
+        entity.setStaus(cursor.getInt(offset + 6));
+     }
+    
+    @Override
+    protected final Long updateKeyAfterInsert(AppdownloadBean entity, long rowId) {
+        entity.setMId(rowId);
+        return rowId;
+    }
+    
+    @Override
+    public Long getKey(AppdownloadBean entity) {
+        if(entity != null) {
+            return entity.getMId();
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    public boolean hasKey(AppdownloadBean entity) {
+        return entity.getMId() != null;
+    }
+
+    @Override
+    protected final boolean isEntityUpdateable() {
+        return true;
+    }
+    
+}

+ 99 - 0
app/src/main/java/com/sheep/gamegroup/greendao/download/DaoMaster.java

@@ -0,0 +1,99 @@
+package com.sheep.gamegroup.greendao.download;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteDatabase.CursorFactory;
+import android.util.Log;
+
+import org.greenrobot.greendao.AbstractDaoMaster;
+import org.greenrobot.greendao.database.StandardDatabase;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseOpenHelper;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/**
+ * Master of DAO (schema version 10): knows all DAOs.
+ */
+public class DaoMaster extends AbstractDaoMaster {
+    public static final int SCHEMA_VERSION = 10;
+
+    /** Creates underlying database table using DAOs. */
+    public static void createAllTables(Database db, boolean ifNotExists) {
+        AppdownloadBeanDao.createTable(db, ifNotExists);
+        DownLoadInfoDao.createTable(db, ifNotExists);
+    }
+
+    /** Drops underlying database table using DAOs. */
+    public static void dropAllTables(Database db, boolean ifExists) {
+        AppdownloadBeanDao.dropTable(db, ifExists);
+        DownLoadInfoDao.dropTable(db, ifExists);
+    }
+
+    /**
+     * WARNING: Drops all table on Upgrade! Use only during development.
+     * Convenience method using a {@link DevOpenHelper}.
+     */
+    public static DaoSession newDevSession(Context context, String name) {
+        Database db = new DevOpenHelper(context, name).getWritableDb();
+        DaoMaster daoMaster = new DaoMaster(db);
+        return daoMaster.newSession();
+    }
+
+    public DaoMaster(SQLiteDatabase db) {
+        this(new StandardDatabase(db));
+    }
+
+    public DaoMaster(Database db) {
+        super(db, SCHEMA_VERSION);
+        registerDaoClass(AppdownloadBeanDao.class);
+        registerDaoClass(DownLoadInfoDao.class);
+    }
+
+    public DaoSession newSession() {
+        return new DaoSession(db, IdentityScopeType.Session, daoConfigMap);
+    }
+
+    public DaoSession newSession(IdentityScopeType type) {
+        return new DaoSession(db, type, daoConfigMap);
+    }
+
+    /**
+     * Calls {@link #createAllTables(Database, boolean)} in {@link #onCreate(Database)} -
+     */
+    public static abstract class OpenHelper extends DatabaseOpenHelper {
+        public OpenHelper(Context context, String name) {
+            super(context, name, SCHEMA_VERSION);
+        }
+
+        public OpenHelper(Context context, String name, CursorFactory factory) {
+            super(context, name, factory, SCHEMA_VERSION);
+        }
+
+        @Override
+        public void onCreate(Database db) {
+            Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION);
+            createAllTables(db, false);
+        }
+    }
+
+    /** WARNING: Drops all table on Upgrade! Use only during development. */
+    public static class DevOpenHelper extends OpenHelper {
+        public DevOpenHelper(Context context, String name) {
+            super(context, name);
+        }
+
+        public DevOpenHelper(Context context, String name, CursorFactory factory) {
+            super(context, name, factory);
+        }
+
+        @Override
+        public void onUpgrade(Database db, int oldVersion, int newVersion) {
+            Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
+            dropAllTables(db, true);
+            onCreate(db);
+        }
+    }
+
+}

+ 62 - 0
app/src/main/java/com/sheep/gamegroup/greendao/download/DaoSession.java

@@ -0,0 +1,62 @@
+package com.sheep.gamegroup.greendao.download;
+
+import java.util.Map;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.AbstractDaoSession;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.identityscope.IdentityScopeType;
+import org.greenrobot.greendao.internal.DaoConfig;
+
+import com.sheep.gamegroup.greendao.download.AppdownloadBean;
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
+
+import com.sheep.gamegroup.greendao.download.AppdownloadBeanDao;
+import com.sheep.gamegroup.greendao.download.DownLoadInfoDao;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+
+/**
+ * {@inheritDoc}
+ * 
+ * @see org.greenrobot.greendao.AbstractDaoSession
+ */
+public class DaoSession extends AbstractDaoSession {
+
+    private final DaoConfig appdownloadBeanDaoConfig;
+    private final DaoConfig downLoadInfoDaoConfig;
+
+    private final AppdownloadBeanDao appdownloadBeanDao;
+    private final DownLoadInfoDao downLoadInfoDao;
+
+    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
+            daoConfigMap) {
+        super(db);
+
+        appdownloadBeanDaoConfig = daoConfigMap.get(AppdownloadBeanDao.class).clone();
+        appdownloadBeanDaoConfig.initIdentityScope(type);
+
+        downLoadInfoDaoConfig = daoConfigMap.get(DownLoadInfoDao.class).clone();
+        downLoadInfoDaoConfig.initIdentityScope(type);
+
+        appdownloadBeanDao = new AppdownloadBeanDao(appdownloadBeanDaoConfig, this);
+        downLoadInfoDao = new DownLoadInfoDao(downLoadInfoDaoConfig, this);
+
+        registerDao(AppdownloadBean.class, appdownloadBeanDao);
+        registerDao(DownLoadInfo.class, downLoadInfoDao);
+    }
+    
+    public void clear() {
+        appdownloadBeanDaoConfig.clearIdentityScope();
+        downLoadInfoDaoConfig.clearIdentityScope();
+    }
+
+    public AppdownloadBeanDao getAppdownloadBeanDao() {
+        return appdownloadBeanDao;
+    }
+
+    public DownLoadInfoDao getDownLoadInfoDao() {
+        return downLoadInfoDao;
+    }
+
+}

+ 281 - 0
app/src/main/java/com/sheep/gamegroup/greendao/download/DownLoadInfo.java

@@ -0,0 +1,281 @@
+package com.sheep.gamegroup.greendao.download;
+
+import android.text.TextUtils;
+
+import org.greenrobot.greendao.annotation.Entity;
+import org.greenrobot.greendao.annotation.Generated;
+import org.greenrobot.greendao.annotation.Id;
+import org.greenrobot.greendao.annotation.NotNull;
+import org.greenrobot.greendao.annotation.Property;
+import org.greenrobot.greendao.annotation.Unique;
+
+import java.io.Serializable;
+
+/**
+ * download task info
+ *
+ * @author kemllor
+ * @date 2017/6/13   0:13
+ **/
+@Entity
+public class DownLoadInfo implements Serializable{
+
+    /**
+     * id
+     */
+    @Id(autoincrement = true)
+    private Long mId;
+    /**
+     * creat time
+     */
+    @Property(nameInDb = "creat_time")
+    private Long mCreateTime;
+
+    /**
+     * task id
+     */
+    @Property(nameInDb = "download_task_id")
+    private Integer mDownloadTaskId;
+
+    /**
+     * game name
+     */
+    @Property(nameInDb = "game_name")
+    private String mGameName;
+
+    /**
+     * icon url
+     */
+    @Property(nameInDb = "icon_url")
+    private String mIconUrl;
+
+    /**
+     * progress per
+     */
+    @Property(nameInDb = "percent")
+    private Integer mPercent;
+
+    /**
+     * game id
+     @Unique
+     */
+    @NotNull
+    @Property(nameInDb = "game_id")
+    private Integer mGameID;
+
+    /**
+     * download size
+     */
+    @Property(nameInDb = "download_size")
+    private Double mDownloadedSize;
+
+    /**
+     * total size
+     */
+    @Property(nameInDb = "total_size")
+    private Double mTotalSize;
+
+    /**
+     * status 0 init  1 fail 2 donwloading  3 finish  4 paused  5  delete
+     */
+    @Property(nameInDb = "status")
+    private Integer mStatus;
+
+    /**
+     * download url
+     */
+    @Unique
+    @Property(nameInDb = "download_url")
+    private String mDownloadUrl;
+
+
+    /**
+     * channel download url
+     */
+    @Unique
+    @Property(nameInDb = "channel_download_url")
+    private String mChannelDownloadUrl;
+
+    /**
+     * package_name
+     */
+    @Property(nameInDb = "package_name")
+    private String mPackageName;
+
+    /**
+     * version code
+     */
+    @Property(nameInDb = "version_code")
+    private Integer mVersionCode;
+
+    /**
+     * apk save path
+     */
+    @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;
+    }
+
+    public void setMApkPath(String mApkPath) {
+        this.mApkPath = mApkPath;
+    }
+
+    public Integer getMVersionCode() {
+        return this.mVersionCode;
+    }
+
+    public void setMVersionCode(Integer mVersionCode) {
+        this.mVersionCode = mVersionCode;
+    }
+
+    public String getMPackageName() {
+        return TextUtils.isEmpty(this.mPackageName)?"":this.mPackageName;
+    }
+
+    public void setMPackageName(String mPackageName) {
+        this.mPackageName = mPackageName;
+    }
+
+    public String getMDownloadUrl() {
+        return this.mDownloadUrl;
+    }
+
+    public void setMDownloadUrl(String mDownloadUrl) {
+        this.mDownloadUrl = mDownloadUrl;
+    }
+
+    public Integer getMStatus() {
+        return this.mStatus == null ? 0 : this.mStatus;
+    }
+
+    public void setMStatus(Integer mStatus) {
+        this.mStatus = mStatus;
+    }
+
+    public Double getMTotalSize() {
+        return this.mTotalSize;
+    }
+
+    public void setMTotalSize(Double mTotalSize) {
+        this.mTotalSize = mTotalSize;
+    }
+
+    public Double getMDownloadedSize() {
+        return this.mDownloadedSize;
+    }
+
+    public void setMDownloadedSize(Double mDownloadedSize) {
+        this.mDownloadedSize = mDownloadedSize;
+    }
+
+    public Integer getMGameID() {
+        return this.mGameID;
+    }
+
+    public void setMGameID(Integer mGameID) {
+        this.mGameID = mGameID;
+    }
+
+    public Integer getMPercent() {
+        return this.mPercent;
+    }
+
+    public void setMPercent(Integer mPercent) {
+        this.mPercent = mPercent;
+    }
+
+    public String getMIconUrl() {
+        return this.mIconUrl;
+    }
+
+    public void setMIconUrl(String mIconUrl) {
+        this.mIconUrl = mIconUrl;
+    }
+
+    public String getMGameName() {
+        return this.mGameName;
+    }
+
+    public void setMGameName(String mGameName) {
+        this.mGameName = mGameName;
+    }
+
+    public Integer getMDownloadTaskId() {
+        return this.mDownloadTaskId;
+    }
+
+    public void setMDownloadTaskId(Integer mDownloadTaskId) {
+        this.mDownloadTaskId = mDownloadTaskId;
+    }
+
+    public Long getMCreateTime() {
+        return this.mCreateTime;
+    }
+
+    public void setMCreateTime(Long mCreateTime) {
+        this.mCreateTime = mCreateTime;
+    }
+
+    public Long getMId() {
+        return this.mId;
+    }
+
+    public void setMId(Long mId) {
+        this.mId = mId;
+    }
+
+    public String getMChannelDownloadUrl() {
+        return this.mChannelDownloadUrl;
+    }
+
+    public void setMChannelDownloadUrl(String mChannelDownloadUrl) {
+        this.mChannelDownloadUrl = mChannelDownloadUrl;
+    }
+
+    @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, int whereFrom) {
+        this.mId = mId;
+        this.mCreateTime = mCreateTime;
+        this.mDownloadTaskId = mDownloadTaskId;
+        this.mGameName = mGameName;
+        this.mIconUrl = mIconUrl;
+        this.mPercent = mPercent;
+        this.mGameID = mGameID;
+        this.mDownloadedSize = mDownloadedSize;
+        this.mTotalSize = mTotalSize;
+        this.mStatus = mStatus;
+        this.mDownloadUrl = mDownloadUrl;
+        this.mChannelDownloadUrl = mChannelDownloadUrl;
+        this.mPackageName = mPackageName;
+        this.mVersionCode = mVersionCode;
+        this.mApkPath = mApkPath;
+        this.whereFrom = whereFrom;
+    }
+
+    @Generated(hash = 1743687477)
+    public DownLoadInfo() {
+    }
+
+
+}

+ 307 - 0
app/src/main/java/com/sheep/gamegroup/greendao/download/DownLoadInfoDao.java

@@ -0,0 +1,307 @@
+package com.sheep.gamegroup.greendao.download;
+
+import android.database.Cursor;
+import android.database.sqlite.SQLiteStatement;
+
+import org.greenrobot.greendao.AbstractDao;
+import org.greenrobot.greendao.Property;
+import org.greenrobot.greendao.internal.DaoConfig;
+import org.greenrobot.greendao.database.Database;
+import org.greenrobot.greendao.database.DatabaseStatement;
+
+// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
+/** 
+ * DAO for table "DOWN_LOAD_INFO".
+*/
+public class DownLoadInfoDao extends AbstractDao<DownLoadInfo, Long> {
+
+    public static final String TABLENAME = "DOWN_LOAD_INFO";
+
+    /**
+     * Properties of entity DownLoadInfo.<br/>
+     * Can be used for QueryBuilder and for referencing column names.
+     */
+    public static class Properties {
+        public final static Property MId = new Property(0, Long.class, "mId", true, "_id");
+        public final static Property MCreateTime = new Property(1, Long.class, "mCreateTime", false, "creat_time");
+        public final static Property MDownloadTaskId = new Property(2, Integer.class, "mDownloadTaskId", false, "download_task_id");
+        public final static Property MGameName = new Property(3, String.class, "mGameName", false, "game_name");
+        public final static Property MIconUrl = new Property(4, String.class, "mIconUrl", false, "icon_url");
+        public final static Property MPercent = new Property(5, Integer.class, "mPercent", false, "percent");
+        public final static Property MGameID = new Property(6, int.class, "mGameID", false, "game_id");
+        public final static Property MDownloadedSize = new Property(7, Double.class, "mDownloadedSize", false, "download_size");
+        public final static Property MTotalSize = new Property(8, Double.class, "mTotalSize", false, "total_size");
+        public final static Property MStatus = new Property(9, Integer.class, "mStatus", false, "status");
+        public final static Property MDownloadUrl = new Property(10, String.class, "mDownloadUrl", false, "download_url");
+        public final static Property MChannelDownloadUrl = new Property(11, String.class, "mChannelDownloadUrl", false, "channel_download_url");
+        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");
+    }
+
+
+    public DownLoadInfoDao(DaoConfig config) {
+        super(config);
+    }
+    
+    public DownLoadInfoDao(DaoConfig config, DaoSession daoSession) {
+        super(config, daoSession);
+    }
+
+    /** Creates the underlying database table. */
+    public static void createTable(Database db, boolean ifNotExists) {
+        String constraint = ifNotExists? "IF NOT EXISTS ": "";
+        db.execSQL("CREATE TABLE " + constraint + "\"DOWN_LOAD_INFO\" (" + //
+                "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: mId
+                "\"creat_time\" INTEGER," + // 1: mCreateTime
+                "\"download_task_id\" INTEGER," + // 2: mDownloadTaskId
+                "\"game_name\" TEXT," + // 3: mGameName
+                "\"icon_url\" TEXT," + // 4: mIconUrl
+                "\"percent\" INTEGER," + // 5: mPercent
+                "\"game_id\" INTEGER NOT NULL ," + // 6: mGameID
+                "\"download_size\" REAL," + // 7: mDownloadedSize
+                "\"total_size\" REAL," + // 8: mTotalSize
+                "\"status\" INTEGER," + // 9: mStatus
+                "\"download_url\" TEXT UNIQUE ," + // 10: mDownloadUrl
+                "\"channel_download_url\" TEXT UNIQUE ," + // 11: mChannelDownloadUrl
+                "\"package_name\" TEXT," + // 12: mPackageName
+                "\"version_code\" INTEGER," + // 13: mVersionCode
+                "\"apk_path\" TEXT," + // 14: mApkPath
+                "\"where_from\" INTEGER NOT NULL );"); // 15: whereFrom
+    }
+
+    /** Drops the underlying database table. */
+    public static void dropTable(Database db, boolean ifExists) {
+        String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"DOWN_LOAD_INFO\"";
+        db.execSQL(sql);
+    }
+
+    @Override
+    protected final void bindValues(DatabaseStatement stmt, DownLoadInfo entity) {
+        stmt.clearBindings();
+ 
+        Long mId = entity.getMId();
+        if (mId != null) {
+            stmt.bindLong(1, mId);
+        }
+ 
+        Long mCreateTime = entity.getMCreateTime();
+        if (mCreateTime != null) {
+            stmt.bindLong(2, mCreateTime);
+        }
+ 
+        Integer mDownloadTaskId = entity.getMDownloadTaskId();
+        if (mDownloadTaskId != null) {
+            stmt.bindLong(3, mDownloadTaskId);
+        }
+ 
+        String mGameName = entity.getMGameName();
+        if (mGameName != null) {
+            stmt.bindString(4, mGameName);
+        }
+ 
+        String mIconUrl = entity.getMIconUrl();
+        if (mIconUrl != null) {
+            stmt.bindString(5, mIconUrl);
+        }
+ 
+        Integer mPercent = entity.getMPercent();
+        if (mPercent != null) {
+            stmt.bindLong(6, mPercent);
+        }
+        stmt.bindLong(7, entity.getMGameID());
+ 
+        Double mDownloadedSize = entity.getMDownloadedSize();
+        if (mDownloadedSize != null) {
+            stmt.bindDouble(8, mDownloadedSize);
+        }
+ 
+        Double mTotalSize = entity.getMTotalSize();
+        if (mTotalSize != null) {
+            stmt.bindDouble(9, mTotalSize);
+        }
+ 
+        Integer mStatus = entity.getMStatus();
+        if (mStatus != null) {
+            stmt.bindLong(10, mStatus);
+        }
+ 
+        String mDownloadUrl = entity.getMDownloadUrl();
+        if (mDownloadUrl != null) {
+            stmt.bindString(11, mDownloadUrl);
+        }
+ 
+        String mChannelDownloadUrl = entity.getMChannelDownloadUrl();
+        if (mChannelDownloadUrl != null) {
+            stmt.bindString(12, mChannelDownloadUrl);
+        }
+ 
+        String mPackageName = entity.getMPackageName();
+        if (mPackageName != null) {
+            stmt.bindString(13, mPackageName);
+        }
+ 
+        Integer mVersionCode = entity.getMVersionCode();
+        if (mVersionCode != null) {
+            stmt.bindLong(14, mVersionCode);
+        }
+ 
+        String mApkPath = entity.getMApkPath();
+        if (mApkPath != null) {
+            stmt.bindString(15, mApkPath);
+        }
+        stmt.bindLong(16, entity.getWhereFrom());
+    }
+
+    @Override
+    protected final void bindValues(SQLiteStatement stmt, DownLoadInfo entity) {
+        stmt.clearBindings();
+ 
+        Long mId = entity.getMId();
+        if (mId != null) {
+            stmt.bindLong(1, mId);
+        }
+ 
+        Long mCreateTime = entity.getMCreateTime();
+        if (mCreateTime != null) {
+            stmt.bindLong(2, mCreateTime);
+        }
+ 
+        Integer mDownloadTaskId = entity.getMDownloadTaskId();
+        if (mDownloadTaskId != null) {
+            stmt.bindLong(3, mDownloadTaskId);
+        }
+ 
+        String mGameName = entity.getMGameName();
+        if (mGameName != null) {
+            stmt.bindString(4, mGameName);
+        }
+ 
+        String mIconUrl = entity.getMIconUrl();
+        if (mIconUrl != null) {
+            stmt.bindString(5, mIconUrl);
+        }
+ 
+        Integer mPercent = entity.getMPercent();
+        if (mPercent != null) {
+            stmt.bindLong(6, mPercent);
+        }
+        stmt.bindLong(7, entity.getMGameID());
+ 
+        Double mDownloadedSize = entity.getMDownloadedSize();
+        if (mDownloadedSize != null) {
+            stmt.bindDouble(8, mDownloadedSize);
+        }
+ 
+        Double mTotalSize = entity.getMTotalSize();
+        if (mTotalSize != null) {
+            stmt.bindDouble(9, mTotalSize);
+        }
+ 
+        Integer mStatus = entity.getMStatus();
+        if (mStatus != null) {
+            stmt.bindLong(10, mStatus);
+        }
+ 
+        String mDownloadUrl = entity.getMDownloadUrl();
+        if (mDownloadUrl != null) {
+            stmt.bindString(11, mDownloadUrl);
+        }
+ 
+        String mChannelDownloadUrl = entity.getMChannelDownloadUrl();
+        if (mChannelDownloadUrl != null) {
+            stmt.bindString(12, mChannelDownloadUrl);
+        }
+ 
+        String mPackageName = entity.getMPackageName();
+        if (mPackageName != null) {
+            stmt.bindString(13, mPackageName);
+        }
+ 
+        Integer mVersionCode = entity.getMVersionCode();
+        if (mVersionCode != null) {
+            stmt.bindLong(14, mVersionCode);
+        }
+ 
+        String mApkPath = entity.getMApkPath();
+        if (mApkPath != null) {
+            stmt.bindString(15, mApkPath);
+        }
+        stmt.bindLong(16, entity.getWhereFrom());
+    }
+
+    @Override
+    public Long readKey(Cursor cursor, int offset) {
+        return cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0);
+    }    
+
+    @Override
+    public DownLoadInfo readEntity(Cursor cursor, int offset) {
+        DownLoadInfo entity = new DownLoadInfo( //
+            cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // mId
+            cursor.isNull(offset + 1) ? null : cursor.getLong(offset + 1), // mCreateTime
+            cursor.isNull(offset + 2) ? null : cursor.getInt(offset + 2), // mDownloadTaskId
+            cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // mGameName
+            cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // mIconUrl
+            cursor.isNull(offset + 5) ? null : cursor.getInt(offset + 5), // mPercent
+            cursor.getInt(offset + 6), // mGameID
+            cursor.isNull(offset + 7) ? null : cursor.getDouble(offset + 7), // mDownloadedSize
+            cursor.isNull(offset + 8) ? null : cursor.getDouble(offset + 8), // mTotalSize
+            cursor.isNull(offset + 9) ? null : cursor.getInt(offset + 9), // mStatus
+            cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // mDownloadUrl
+            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.getInt(offset + 15) // whereFrom
+        );
+        return entity;
+    }
+     
+    @Override
+    public void readEntity(Cursor cursor, DownLoadInfo entity, int offset) {
+        entity.setMId(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
+        entity.setMCreateTime(cursor.isNull(offset + 1) ? null : cursor.getLong(offset + 1));
+        entity.setMDownloadTaskId(cursor.isNull(offset + 2) ? null : cursor.getInt(offset + 2));
+        entity.setMGameName(cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3));
+        entity.setMIconUrl(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
+        entity.setMPercent(cursor.isNull(offset + 5) ? null : cursor.getInt(offset + 5));
+        entity.setMGameID(cursor.getInt(offset + 6));
+        entity.setMDownloadedSize(cursor.isNull(offset + 7) ? null : cursor.getDouble(offset + 7));
+        entity.setMTotalSize(cursor.isNull(offset + 8) ? null : cursor.getDouble(offset + 8));
+        entity.setMStatus(cursor.isNull(offset + 9) ? null : cursor.getInt(offset + 9));
+        entity.setMDownloadUrl(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10));
+        entity.setMChannelDownloadUrl(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11));
+        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
+    protected final Long updateKeyAfterInsert(DownLoadInfo entity, long rowId) {
+        entity.setMId(rowId);
+        return rowId;
+    }
+    
+    @Override
+    public Long getKey(DownLoadInfo entity) {
+        if(entity != null) {
+            return entity.getMId();
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    public boolean hasKey(DownLoadInfo entity) {
+        return entity.getMId() != null;
+    }
+
+    @Override
+    protected final boolean isEntityUpdateable() {
+        return true;
+    }
+    
+}

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/helper/DownloadHelper.java

@@ -8,9 +8,9 @@ import android.widget.TextView;
 import com.arialyy.aria.core.Aria;
 import com.arialyy.aria.core.download.DownloadTarget;
 import com.arialyy.aria.core.inf.IEntity;
-import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.sheep.gamegroup.event.BigEvent;
 import com.sheep.gamegroup.event.EventTypes;
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 import com.sheep.gamegroup.util.DownloadUtil;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.model.api.IDownload;

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

@@ -1,7 +1,7 @@
 package com.sheep.gamegroup.model.entity;
 
-import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.sheep.gamegroup.event.EventTypes;
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 
 import java.io.Serializable;
 

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

@@ -664,7 +664,7 @@ public class TaskEty implements Serializable, IDownload {
     }
 
     /**
-     * 是否是小程序 1006
+     * 是否是小程序 1007
      */
     public boolean isApplet(){
         return task_type == TASK_TYPE_APPLET;

+ 2 - 2
app/src/main/java/com/sheep/gamegroup/receiver/AppAddOrDelReceiver.java

@@ -8,9 +8,9 @@ import android.os.Looper;
 import android.text.TextUtils;
 
 import com.alibaba.fastjson.JSONObject;
-import com.kfzs.duanduan.datashare.DDProviderHelper;
-import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.kfzs.duanduan.utils.ApkUtils;
+import com.sheep.gamegroup.greendao.DDProviderHelper;
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.NetUtil;
 import com.sheep.jiuyan.samllsheep.SheepApp;

+ 32 - 24
app/src/main/java/com/sheep/gamegroup/util/ActivityManager.java

@@ -15,96 +15,104 @@ public class ActivityManager {
     private static Stack<Activity> activityStack = new Stack<>();
     private static ActivityManager activityManager;
 
-    public static ActivityManager getInstance(){
-        if(activityManager == null)
+    public static ActivityManager getInstance() {
+        if (activityManager == null)
             activityManager = new ActivityManager();
         return activityManager;
     }
+
     /**
      * 将activity移除stack
      */
-    public void popActivity(Activity activity){
-        if (activity != null){
+    public void popActivity(Activity activity) {
+        if (activity != null) {
             activityStack.remove(activity);
         }
     }
+
     /**
      * 结束制定activity
      */
-    public void endActivity(Activity activity){
-        if(activity != null){
-            activity.finish();
+    public void endActivity(Activity activity) {
+        if (activity != null) {
             activityStack.remove(activity);
+            activity.finish();
         }
     }
+
     /**
      * 结束制定activity
      */
-    public void endActivity(Class<? extends Activity> cls){
-        try{
-            for(Activity activity: activityStack){
-                if(activity.getClass().equals(cls)){
+    public void endActivity(Class<? extends Activity> cls) {
+        try {
+            for (Activity activity : activityStack) {
+                if (activity.getClass().equals(cls)) {
                     endActivity(activity);
                 }
             }
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
         }
     }
+
     /**
      * 活的当前的activity(即最上层)
      */
-    public Activity currentActivity(){
+    public Activity currentActivity() {
         Activity activity = null;
-        if(!activityStack.empty()){
+        if (!activityStack.empty()) {
             activity = activityStack.lastElement();
         }
         return activity;
     }
+
     /**
      * 讲activity 推入栈内
      */
-    public void pushActivity(Activity activity){
+    public void pushActivity(Activity activity) {
         if (activityStack == null) {
             activityStack = new Stack<>();
         }
         activityStack.add(activity);
     }
+
     /**
      * 弹出class外的所有activity
      */
-    public void popAllActivityExceptThis(Class<? extends Activity> cls){
-        while (true){
+    public void popAllActivityExceptThis(Class<? extends Activity> cls) {
+        while (true) {
             Activity activity = currentActivity();
             if (activity == null) {
                 break;
             }
-            if (activity.getClass().equals(cls)){
+            if (activity.getClass().equals(cls)) {
                 break;
             }
             popActivity(activity);
         }
     }
+
     /**
      * 结束除cls之外的所有activity,将执行结果都会清空stack
      */
-    public void finishAllActivityExceptThis(Class<? extends Activity> cls){
+    public void finishAllActivityExceptThis(Class<? extends Activity> cls) {
         while (!activityStack.empty()) {
             Activity activity = currentActivity();
-            if(activity.getClass().equals(cls)){
+            if (activity.getClass().equals(cls)) {
                 popActivity(activity);
-            }else {
+            } else {
                 endActivity(activity);
             }
         }
     }
+
     /**
      * 结束所有activity
      */
-    public void finishAllActivity(){
-        while (!activityStack.empty()){
+    public void finishAllActivity() {
+        while (!activityStack.empty()) {
             Activity activity = currentActivity();
-                endActivity(activity);
+            endActivity(activity);
         }
     }
 }

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

@@ -65,7 +65,7 @@ public class CertificationUtil {
             if (TextUtils.isEmpty(ext)) {
                 intent.putExtra(context.getString(R.string.kfzs_duanduan_datashare_package_extras), "");
             } else if("cancel".equals(ext)){
-                intent.putExtra(context.getString(com.kfzs.duanduan.datashare.R.string.kfzs_duanduan_datashare_certification_cancel), "cancel");
+                intent.putExtra(context.getString(R.string.kfzs_duanduan_datashare_certification_cancel), "cancel");
             }else  {
                 intent.putExtra(context.getString(R.string.kfzs_duanduan_datashare_package_extras), ext);
             }

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

@@ -29,7 +29,6 @@ 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.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.mdad.sdk.mdsdk.AdManager;
 import com.mdad.sdk.mdsdk.common.AdData;
@@ -37,6 +36,7 @@ import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.alipay.PayResult;
 import com.sheep.gamegroup.event.BigEvent;
 import com.sheep.gamegroup.event.EventTypes;
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.Ext;

+ 3 - 2
app/src/main/java/com/sheep/gamegroup/util/DownloadUtil.java

@@ -6,8 +6,9 @@ import android.text.TextUtils;
 
 import com.arialyy.aria.core.Aria;
 import com.arialyy.aria.core.download.DownloadTarget;
-import com.kfzs.duanduan.datashare.DDProviderHelper;
-import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
+
+import com.sheep.gamegroup.greendao.DDProviderHelper;
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 import com.sheep.gamegroup.model.api.IDownload;
 import com.sheep.gamegroup.model.entity.DialogEntity;
 import com.sheep.gamegroup.model.entity.OrienteeringDetail;

File diff suppressed because it is too large
+ 281 - 179
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java


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

@@ -109,7 +109,7 @@ public class TestUtil {
                                     if(object instanceof LoginUser){
                                         SpUtils.saveToken(SheepApp.getInstance(), ((LoginUser) object).getToken());
                                         ActivityManager.getInstance().finishAllActivity();
-                                        Intent intent = new Intent(SheepApp.getInstance(), ActMain.class);
+                                        Intent intent = new Intent(SheepApp.getInstance(), ActMain.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                         SheepApp.getInstance().startActivity(intent);
                                     } else if(object instanceof String){

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

@@ -10,9 +10,9 @@ 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.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.sheep.gamegroup.event.BigEvent;
 import com.sheep.gamegroup.event.EventTypes;
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;

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

@@ -14,8 +14,8 @@ import com.arialyy.annotations.Download;
 import com.arialyy.aria.core.Aria;
 import com.arialyy.aria.core.download.DownloadTask;
 import com.kfzs.appstore.utils.adapter.OnMDLItemChildClickListener;
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 import com.sheep.gamegroup.model.entity.DownloadStatus;
-import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.sheep.gamegroup.event.BigEvent;
 import com.sheep.gamegroup.event.EventDownloadHandler;
 import com.sheep.gamegroup.event.EventTypes;

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

@@ -56,7 +56,7 @@ public class ActMiDong extends BaseActivity {
     public void initView() {
         activity = this;
         TitleBarUtils.getInstance()
-                .setTitle(activity, "幂动任务")
+                .setTitle(activity, "简单任务")
                 .setTitleFinish(activity)
                 .setRightImgBotton(activity, R.mipmap.question_black_img, new View.OnClickListener() {
                     @Override

+ 78 - 62
app/src/main/java/com/sheep/gamegroup/view/activity/ChangeTelAct.java

@@ -38,7 +38,7 @@ import rx.functions.Action1;
  * Created by ljy on 2018/3/27.
  */
 
-public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
+public class ChangeTelAct extends BaseActivity implements PhoneContract.View {
     @BindView(R.id.tel_tv)
     TextView telTv;
     @BindView(R.id.sure_change_tv)
@@ -88,7 +88,7 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
     private SelfCountDownTimer selfCountDownTimer;
     private boolean canGetCaptchaPhone = true;
 
-    private int where_from ;
+    private int where_from;
 
     @Override
     protected int getLayoutId() {
@@ -115,14 +115,15 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
                         toFinish();
                     }
                 });
-        switch (where_from){
+        switch (where_from) {
             case FROM_SPLASH://非第一次登录(如:登录后直接重启),老用户需要绑定手机号
                 titleBarUtils.setRightBtn(this, "跳过", 0, new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {
-                        Intent intent = new Intent(activity, ActMain.class);
-                        activity.startActivity(intent);
-                        activity.finish();
+//                        Intent intent = new Intent(activity, ActMain.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+//                        activity.startActivity(intent);
+//                        activity.finish();
+                        startMainAct();
                     }
                 });
                 break;
@@ -133,9 +134,10 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
                         Jump2View.getInstance().checkLabel(activity, new Action1<BaseMessage>() {
                             @Override
                             public void call(BaseMessage baseMessage) {
-                                Intent intent = new Intent(activity, ActMain.class);
-                                activity.startActivity(intent);
-                                activity.finish();
+//                                Intent intent = new Intent(activity, ActMain.class);
+//                                activity.startActivity(intent);
+//                                activity.finish();
+                                startMainAct();
                             }
                         });
                     }
@@ -146,7 +148,7 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
                 break;
         }
         mobiles = DataUtil.getInstance().getUserMobile();
-        if(!TextUtils.isEmpty(mobiles)){//提示
+        if (!TextUtils.isEmpty(mobiles)) {//提示
             oldOrNew = 1;
             showChangeLayout.setVisibility(View.VISIBLE);
             changePhoneLayout.setVisibility(View.GONE);
@@ -156,20 +158,31 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
         refreshData();
     }
 
+    /**
+     * 跳转到首页
+     */
+    private void startMainAct() {
+        Intent intent = new Intent(activity, ActMain.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        activity.startActivity(intent);
+        activity.finish();
+    }
+
     private void toFinish() {
-        switch (where_from){
+        switch (where_from) {
             case FROM_SPLASH://非第一次登录(如:登录后直接重启),老用户需要绑定手机号
-                Intent intent = new Intent(activity, ActMain.class);
-                startActivity(intent);
-                finish();
+//                Intent intent = new Intent(activity, ActMain.class);
+//                startActivity(intent);
+//                finish();
+                startMainAct();
                 break;
             case FROM_LOGIN://第一次登录,老用户需要绑定手机号
                 Jump2View.getInstance().checkLabel(activity, new Action1<BaseMessage>() {
                     @Override
                     public void call(BaseMessage baseMessage) {
-                        Intent intent = new Intent(activity, ActMain.class);
-                        activity.startActivity(intent);
-                        activity.finish();
+//                        Intent intent = new Intent(activity, ActMain.class);
+//                        activity.startActivity(intent);
+//                        activity.finish();
+                        startMainAct();
                     }
                 });
                 break;
@@ -214,39 +227,39 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
     /**
      * refresh
      */
-    public void refreshData(){
+    public void refreshData() {
         showChangeLayout.setVisibility(View.GONE);
         changePhoneLayout.setVisibility(View.VISIBLE);
-        if(oldOrNew == 1){
+        if (oldOrNew == 1) {
             hitStr = "请输入手机号码";
             noticeStr = "验证原手机";
-            phoneEtAccount.setHint(hitStr+"");
+            phoneEtAccount.setHint(hitStr + "");
 //            phoneEtAccount.setText(mobiles+"");
-        }else{
+        } else {
             step = 0;
             hitStr = "请输入手机号码";
             noticeStr = "绑定手机号";
-            phoneEtAccount.setHint(hitStr+"");
+            phoneEtAccount.setHint(hitStr + "");
             TitleBarUtils.getInstance().setTitle(this, noticeStr);
         }
     }
 
-    @OnClick({ R.id.phone_btn_code, R.id.phone_sure_tv, R.id.sure_change_tv, R.id.phone_btn_code_old})
+    @OnClick({R.id.phone_btn_code, R.id.phone_sure_tv, R.id.sure_change_tv, R.id.phone_btn_code_old})
     public void onViewClicked(View view) {
         switch (view.getId()) {
             case R.id.phone_btn_code:
                 sec_code = null;
-                mobile = phoneEtAccount.getText().toString() +"";
-                if(!checkPhoneInput(mobile)){
+                mobile = phoneEtAccount.getText().toString() + "";
+                if (!checkPhoneInput(mobile)) {
                     return;
                 }
                 if (!canGetCaptchaPhone) {
                     return;
                 }
-                if(oldOrNew == 0){
+                if (oldOrNew == 0) {
                     selfCountDownTimer.reset(SelfCountDownTimer.FULL_SECOND);
                     JSONObject jsonObject = new JSONObject();
-                    jsonObject.put("mobile", mobile+"");
+                    jsonObject.put("mobile", mobile + "");
                     presenter.smsBindMobile(jsonObject);
                     canGetCaptchaPhone = false;
                     selfCountDownTimer.start();
@@ -256,18 +269,18 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
                 submit();
                 break;
             case R.id.phone_sure_tv://更换手机号
-                sec_code = phoneEtCode.getText().toString()+"";
-                mobile = phoneEtAccount.getText().toString() +"";
-                if(!checkPhoneInput(mobile)){
+                sec_code = phoneEtCode.getText().toString() + "";
+                mobile = phoneEtAccount.getText().toString() + "";
+                if (!checkPhoneInput(mobile)) {
                     return;
                 }
-                if(!checkCodeInput(sec_code)){
+                if (!checkCodeInput(sec_code)) {
                     return;
                 }
-                if(oldOrNew == 0){
+                if (oldOrNew == 0) {
                     JSONObject jsonObject = new JSONObject();
-                    jsonObject.put("mobile", mobile+"");
-                    jsonObject.put("sec_code", sec_code+"");
+                    jsonObject.put("mobile", mobile + "");
+                    jsonObject.put("sec_code", sec_code + "");
                     presenter.bindPhone(jsonObject);
                     return;
                 }
@@ -276,8 +289,8 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
                 UMConfigUtils.onEvent(UMConfigUtils.Event.USER_BIND_PHONE);
                 break;
             case R.id.sure_change_tv:
-                sec_code = phone_et_code_old.getText().toString()+"";
-                if(!checkCodeInput(sec_code)){
+                sec_code = phone_et_code_old.getText().toString() + "";
+                if (!checkCodeInput(sec_code)) {
                     return;
                 }
                 step = 2;
@@ -298,10 +311,10 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
     /**
      * 提交
      */
-    private void submit(){
+    private void submit() {
         JSONObject jsonObject = new JSONObject();
-        jsonObject.put("step", step+"");
-        switch (step){
+        jsonObject.put("step", step + "");
+        switch (step) {
             case 1:
 
                 selfCountDownTimer.reset(SelfCountDownTimer.FULL_SECOND);
@@ -309,19 +322,19 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
                 selfCountDownTimer.start();
                 break;
             case 2:
-                jsonObject.put("sec_code", sec_code+"");
+                jsonObject.put("sec_code", sec_code + "");
                 break;
             case 3:
-                jsonObject.put("auth_code", auth_code+"");
-                jsonObject.put("mobile", mobile+"");
+                jsonObject.put("auth_code", auth_code + "");
+                jsonObject.put("mobile", mobile + "");
                 selfCountDownTimer.reset(SelfCountDownTimer.FULL_SECOND);
                 canGetCaptchaPhone = false;
                 selfCountDownTimer.start();
                 break;
             case 4:
-                jsonObject.put("sec_code", sec_code+"");
-                jsonObject.put("auth_code", auth_code+"");
-                jsonObject.put("mobile", mobile+"");
+                jsonObject.put("sec_code", sec_code + "");
+                jsonObject.put("auth_code", auth_code + "");
+                jsonObject.put("mobile", mobile + "");
                 break;
         }
         presenter.switchPhone(jsonObject);
@@ -350,67 +363,68 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
 
     @Override
     public void changeTelSuccess(BaseMessage o) {
-        try{
+        try {
 //            if(step == 1 || step == 3){
 //                changeTelSuccess
 //            }
-            if(step == 2){
+            if (step == 2) {
                 oldOrNew = 1;
 
 //                handler.sendEmptyMessage(CHANGGE_CLICK);
                 refreshData();
                 phoneBtnCode.setText(getString(R.string.get_captcha));
                 canGetCaptchaPhone = true;
-                if(selfCountDownTimer != null)
+                if (selfCountDownTimer != null)
                     selfCountDownTimer.reset(SelfCountDownTimer.FULL_SECOND);
-            }else if(step == 4){
+            } else if (step == 4) {
                 DataUtil.getInstance().setUserMobile(mobile);
                 G.showToast(o);
                 CommonUtil.getInstance().updateUserInfo(null);
                 finish();
             }
-            if(o == null){
+            if (o == null) {
                 G.showToast("网络错误");
                 return;
             }
-            if(o.getData() == null || o.getData().equals("")){
+            if (o.getData() == null || o.getData().equals("")) {
 //                G.showToast(o.getMsg()+"");
                 return;
             }
-            G.showToast((o.getMsg()).equals("")?"提交成功":o.getMsg()+"");
+            G.showToast((o.getMsg()).equals("") ? "提交成功" : o.getMsg() + "");
             JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(o.getData()));
             auth_code = jsonObject.getString("auth_code");
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
     @Override
     public void changeTelFail(BaseMessage o) {
-        if(o == null){
+        if (o == null) {
             G.showToast("网络错误");
             return;
         }
-        G.showToast(o.getMsg()+"");
+        G.showToast(o.getMsg() + "");
     }
 
     @Override
     public void bindTelSuccess(BaseMessage o) {
         G.showToast(o);
-        switch (where_from){
+        switch (where_from) {
             case FROM_LOGIN:
             case 30001:
                 Jump2View.getInstance().checkLabel(activity, new Action1<BaseMessage>() {
                     @Override
                     public void call(BaseMessage baseMessage) {
-                        Intent intent = new Intent(activity, ActMain.class);
-                        activity.startActivity(intent);
-                        activity.finish();
+//                        Intent intent = new Intent(activity, ActMain.class);
+//                        activity.startActivity(intent);
+//                        activity.finish();
+                        startMainAct();
                     }
                 });
                 break;
             case FROM_SPLASH://非第一次登录(如:登录后直接重启),老用户需要绑定手机号
-                Intent intent = new Intent(activity, ActMain.class);
+                Intent intent = new Intent(activity, ActMain.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                 startActivity(intent);
             default:
                 finish();
@@ -420,7 +434,7 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
 
     @Override
     public void bindTelFail(BaseMessage o) {
-        G.showToast(o.getMsg()+"");
+        G.showToast(o.getMsg() + "");
     }
 
     @Override
@@ -447,6 +461,7 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
         }
         return true;
     }
+
     private boolean checkCodeInput(String etCode) {
         if (TextUtils.isEmpty(etCode)) {
             G.showToast(getString(R.string.input_your_captcha));
@@ -467,10 +482,11 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
     @Override
     protected void onDestroy() {
         super.onDestroy();
-        if(selfCountDownTimer != null){
+        if (selfCountDownTimer != null) {
             selfCountDownTimer.cancel();
         }
     }
+
     public static final int FROM_LOGIN = 1;//第一次登录,老用户需要绑定手机号
     public static final int FROM_SPLASH = 2;//非第一次登录(如:登录后直接重启),老用户需要绑定手机号
 }

+ 7 - 8
app/src/main/java/com/sheep/gamegroup/view/activity/FeedbackAct.java

@@ -13,7 +13,6 @@ import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 import butterknife.BindView;
-import butterknife.ButterKnife;
 import butterknife.OnClick;
 import rx.android.schedulers.AndroidSchedulers;
 import rx.schedulers.Schedulers;
@@ -61,21 +60,21 @@ public class FeedbackAct extends BaseActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         // TODO: add setContentView(...) invocation
-        ButterKnife.bind(this);
+//        this.bind = ButterKnife.bind(this);
     }
 
     @OnClick(R.id.tv_submit)
     public void onViewClicked() {
         USER_FEEDBACK_COMMIT.onEvent();
-        Content = feedbookEt.getText() +"";
-        Email = feedbookEmailEt.getText() +"";
-        if(android.text.TextUtils.isEmpty(Content)){
+        Content = feedbookEt.getText() + "";
+        Email = feedbookEmailEt.getText() + "";
+        if (android.text.TextUtils.isEmpty(Content)) {
             G.showToast(getResources().getString(R.string.feedback_notice_input_advice));
             return;
         }
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("Content", Content);
-        jsonObject.put("Email", Email+"");
+        jsonObject.put("Email", Email + "");
         SheepApp.getInstance()
                 .getNetComponent()
                 .getApiService()
@@ -85,12 +84,12 @@ public class FeedbackAct extends BaseActivity {
                 .subscribe(new SheepSubscriber<BaseMessage>(this) {
                     @Override
                     public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage.getMsg() +"");
+                        G.showToast(baseMessage.getMsg() + "");
                     }
 
                     @Override
                     public void onNext(BaseMessage baseMessage) {
-                        G.showToast(baseMessage.getMsg() +"");
+                        G.showToast(baseMessage.getMsg() + "");
                         finish();
                     }
                 });

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

@@ -19,9 +19,9 @@ 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.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.sheep.gamegroup.event.BigEvent;
 import com.sheep.gamegroup.event.EventTypes;
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 import com.sheep.gamegroup.util.DownloadUtil;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
@@ -1455,7 +1455,6 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                     taskChild.setScreenshotsList(taskEty.getScreenshotsList());
                 }
             }
-
             descEntityArrayList.add(taskChild);
             detail_task_recyclerview.setVisibility(View.VISIBLE);
             detail_item_layout_2.setVisibility(View.GONE);
@@ -1463,6 +1462,9 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
             detail_task_listview.setVisibility(View.GONE);
             sonListviewAdp = new TaskdetailSonListviewAdp(descEntityArrayList, activity);
             detail_task_recyclerview.setAdapter(sonListviewAdp);
+            if(taskEty.isApplet()){
+                sonListviewAdp.addTaskEntity(taskReleaseEty);
+            }
         }
 
         //截至时间

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

@@ -13,8 +13,6 @@ import android.widget.TextView;
 import com.alibaba.fastjson.JSONObject;
 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.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.TaskEty;

+ 6 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/WebviewAct.java

@@ -151,4 +151,10 @@ public class WebviewAct extends BaseActivity {
         }
 
     }
+
+    @Override
+    protected void onDestroy() {
+        activityWebview.destroy();
+        super.onDestroy();
+    }
 }

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

@@ -75,7 +75,7 @@ public class AdbMidong extends AdbCommonRecycler<AdDataSon> {
         }
 
         if (!TextUtils.isEmpty(data.getTodayTask())) {
-            ((TextView) holder.itemView.findViewById(R.id.item_date_tv)).setText(Html.fromHtml(String.format(Locale.CHINA, "签到可获得<font color='#ff4a5f'>%s</font>", data.getPrice())));
+            ((TextView) holder.itemView.findViewById(R.id.item_date_tv)).setText(Html.fromHtml(String.format(Locale.CHINA, "签到可获得<font color='#ff4a5f'>%s元</font>", data.getUsign_price_total())));
             tv_date.setText(data.getTodayTask());
             if(TimeUtil.newInstance().big2Today(data.getTodayTask(), TimeUtil.FORMAT_DD_LINE)){
                 task_top.setEnabled(true);
@@ -84,7 +84,7 @@ public class AdbMidong extends AdbCommonRecycler<AdDataSon> {
             }
             task_top.setVisibility(View.VISIBLE);
         } else {
-            ((TextView) holder.itemView.findViewById(R.id.item_date_tv)).setText(Html.fromHtml(String.format(Locale.CHINA, "安装可获得<font color='#ff4a5f'>%s</font>", data.getPrice())));
+            ((TextView) holder.itemView.findViewById(R.id.item_date_tv)).setText(Html.fromHtml(String.format(Locale.CHINA, "安装可获得<font color='#ff4a5f'>%s元</font>", data.getUprice() + data.getUsign_price_total())));
             task_top.setVisibility(View.GONE);
         }
 

+ 4 - 4
app/src/main/java/com/sheep/gamegroup/view/adapter/DownloadMgrAdapter.java

@@ -5,15 +5,15 @@ import android.widget.ImageView;
 import android.widget.ProgressBar;
 
 import com.bumptech.glide.Glide;
-import com.kfzs.duanduan.view.KFProgressButton;
 import com.kfzs.appstore.utils.adapter.MDLAdpater;
 import com.kfzs.appstore.utils.adapter.MDLViewHolderHelper;
-import com.sheep.jiuyan.samllsheep.R;
+import com.kfzs.duanduan.utils.ApkUtils;
 import com.kfzs.duanduan.utils.InstallButtonUtils;
+import com.kfzs.duanduan.view.KFProgressButton;
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 import com.sheep.gamegroup.util.DownloadUtil;
-import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
-import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.view.activity.ActDownloadMgr;
+import com.sheep.jiuyan.samllsheep.R;
 
 import java.io.File;
 import java.util.HashMap;

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

@@ -15,10 +15,10 @@ import android.widget.TextView;
 
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
-import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.event.BigEvent;
 import com.sheep.gamegroup.event.EventTypes;
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 import com.sheep.gamegroup.helper.TaskHelper;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.GameAgencyRechargePlatformEntity;

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/dialog/DialogAccountAbnormal.java

@@ -7,9 +7,9 @@ import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
 
-import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.sheep.gamegroup.event.BigEvent;
 import com.sheep.gamegroup.event.EventTypes;
+import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 import com.sheep.gamegroup.util.DownloadUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.jiuyan.samllsheep.R;

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

@@ -90,9 +90,9 @@ public class DialogMidong {
         }
         item_date_tv.setText((TextUtils.isEmpty(data.getSize())?"0":data.getSize() +"M"));
         if (!TextUtils.isEmpty(data.getTodayTask())) {
-            item_num_tv.setText(Html.fromHtml(String.format(Locale.CHINA, "签到可获得<font color='#ff4a5f'>+%s</font>", data.getPrice())));
+            item_num_tv.setText(Html.fromHtml(String.format(Locale.CHINA, "签到可获得<font color='#ff4a5f'>+%s元</font>", data.getUsign_price_total())));
         }else {
-            item_num_tv.setText(Html.fromHtml(String.format(Locale.CHINA, "安装可获得<font color='#ff4a5f'>+%s</font>", data.getPrice())));
+            item_num_tv.setText(Html.fromHtml(String.format(Locale.CHINA, "安装可获得<font color='#ff4a5f'>+%s元</font>,签到还可继续得<font color='#ff4a5f'>+%s元</font>", data.getUprice() , data.getUsign_price_total())));
         }
 
         midong_btn_tv.setOnClickListener(new View.OnClickListener() {

+ 29 - 23
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -15,15 +15,17 @@ import com.baidu.location.BDAbstractLocationListener;
 import com.baidu.location.BDLocation;
 import com.baidu.location.LocationClient;
 import com.baidu.location.LocationClientOption;
-import com.sheep.gamegroup.util.CertificationUtil;
-import com.sheep.gamegroup.util.ConfigUtil;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.GlideBuilder;
 import com.sheep.gamegroup.di.components.DaggerNetComponent;
 import com.sheep.gamegroup.di.components.NetComponent;
 import com.sheep.gamegroup.di.modules.NetModule;
 import com.sheep.gamegroup.usage.AppUsageManager;
 import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.AppUtil;
+import com.sheep.gamegroup.util.CertificationUtil;
 import com.sheep.gamegroup.util.ChannelContent;
+import com.sheep.gamegroup.util.ConfigUtil;
 import com.sheep.gamegroup.util.ConnectAddress;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.Jump2View;
@@ -32,7 +34,6 @@ import com.sheep.gamegroup.util.RefreshUtil;
 import com.sheep.gamegroup.util.ScreenShotListenManager;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
-import com.sheep.gamegroup.view.activity.ActBindMobileRegister;
 import com.sheep.gamegroup.view.activity.ActMain;
 import com.sheep.gamegroup.view.activity.GameCertificationActivity;
 import com.sheep.gamegroup.view.activity.LoginAct;
@@ -142,20 +143,20 @@ public class SheepApp extends MultiDexApplication {
     }
 
     public void setConnectAddress(ConnectAddress connectAddress) {
-            if(this.connectAddress != connectAddress){
-                DataUtil.putAsString("flavor", connectAddress.name());
-                quit();
-                android.os.Process.killProcess(android.os.Process.myPid());
-                System.exit(0);
-            } else {
-                G.showToast("已经是该服务器");
-            }
+        if (this.connectAddress != connectAddress) {
+            DataUtil.putAsString("flavor", connectAddress.name());
+            quit();
+            android.os.Process.killProcess(android.os.Process.myPid());
+            System.exit(0);
+        } else {
+            G.showToast("已经是该服务器");
+        }
     }
 
     @Override
     public void onCreate() {
         super.onCreate();
-        if(AppUtil.isMainProcess(this)) {
+        if (AppUtil.isMainProcess(this)) {
             mSheepApp = this;
             connectAddress = ConnectAddress.sheep.getDefultConnectAddress();
             registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
@@ -309,6 +310,7 @@ public class SheepApp extends MultiDexApplication {
         mLocationClient.restart();
         return curLocation;
     }
+
     private void initNet() {
         netComponent = DaggerNetComponent.builder().netModule(new NetModule()).build();
     }
@@ -321,12 +323,13 @@ public class SheepApp extends MultiDexApplication {
      */
     ActivityLifecycleCallbacks activityLifecycleCallbacks = new ActivityLifecycleCallbacks() {
         private ScreenShotListenManager manager;
+
         @Override
         public void onActivityCreated(final Activity activity, Bundle savedInstanceState) {
             ActivityManager.getInstance().pushActivity(activity);
-            if(/*activity instanceof SplashAct || */activity instanceof LoginAct){
+            if (/*activity instanceof SplashAct || */activity instanceof LoginAct) {
                 SysAppUtil.showVersionInfo(activity, SpUtils.getIgnoreMd5());
-            } else if(activity instanceof ActMain){
+            } else if (activity instanceof ActMain) {
                 SysAppUtil.showVersionInfo(activity, SpUtils.getIgnoreMd5(), new Action1<Integer>() {
                     @Override
                     public void call(Integer integer) {
@@ -335,14 +338,14 @@ public class SheepApp extends MultiDexApplication {
                 });
             }
 
-            if(mActivityCount == 0) {
-                if(ConfigUtil.getInstance().isUpgrade()) {
+            if (mActivityCount == 0) {
+                if (ConfigUtil.getInstance().isUpgrade()) {
                     Beta.autoDownloadOnWifi = !BuildConfig.DEBUG;
                     Bugly.init(getApplicationContext(), Config.BUGLY_APPID, BuildConfig.DEBUG);
                 }
                 AppUsageManager.getInstance().needOpenLookAppUsageStatsPermisson(true);//尝试保存应用使用情况的数据
                 LogUtil.println("SheepApp onActivityCreated", mActivityCount);
-                if(DataUtil.IS_LISTEN_SCREEN_SHOT) {
+                if (DataUtil.IS_LISTEN_SCREEN_SHOT) {
                     manager = ScreenShotListenManager.newInstance(activity.getApplicationContext());
                     manager.setListener(
                             new ScreenShotListenManager.OnScreenShotListener() {
@@ -362,7 +365,7 @@ public class SheepApp extends MultiDexApplication {
             mActivityCount++;
             UMConfigUtils.onPageStart(activity);
             if (mActivityCount > 0) {
-                if(!notStop) {
+                if (!notStop) {
                     notStop = true;
                     LogUtil.println("SheepApp onActivityStarted", mActivityCount);
                     UMConfigUtils.Event.SHEEP_STARTED.onEvent();
@@ -386,7 +389,7 @@ public class SheepApp extends MultiDexApplication {
             mActivityCount--;
             UMConfigUtils.onPageEnd(activity);
             if (mActivityCount <= 0) {
-                if(notStop) {
+                if (notStop) {
                     notStop = false;
                     LogUtil.println("SheepApp onActivityStopped", mActivityCount);
                     UMConfigUtils.Event.SHEEP_STOPPED.onEvent();
@@ -403,20 +406,22 @@ public class SheepApp extends MultiDexApplication {
         @Override
         public void onActivityDestroyed(Activity activity) {
             Log.e("act_destroy_----", "in");
-            if(!TextUtils.isEmpty(gamePackgeName) && isGameFlag() && (activity instanceof GameCertificationActivity ||activity instanceof LoginAct)){
+            if (!TextUtils.isEmpty(gamePackgeName) && isGameFlag() && (activity instanceof GameCertificationActivity || activity instanceof LoginAct)) {
                 CertificationUtil.newInstance().doCertification(activity, gamePackgeName, "cancel");
             }
-            if(mActivityCount == 0) {
+            if (mActivityCount == 0) {
                 LogUtil.println("SheepApp onActivityDestroyed", mActivityCount);
                 DataUtil.getInstance().resetIsNewSmallSheep();
                 stopService(new Intent(SheepApp.this, DownloadService.class));
                 stopService(new Intent(SheepApp.this, FloatService.class));
-                if(DataUtil.IS_USE_SCREEN_SHOT)
+                if (DataUtil.IS_USE_SCREEN_SHOT)
                     stopService(new Intent(SheepApp.this, FloatShotScreenService.class));
-                if(manager != null)
+                if (manager != null)
                     manager.stopListen();
+                SpUtils.saveOrder("order", 1);
                 UMConfigUtils.Event.SHEEP_DESTROYED.onEvent();
             }
+            ActivityManager.getInstance().endActivity(activity);
         }
     };
 
@@ -430,6 +435,7 @@ public class SheepApp extends MultiDexApplication {
         } catch (Exception ignore) {
         }
     }
+
     public NetComponent getNetComponent() {
         return netComponent;
     }

+ 12 - 0
app/src/main/res/values-w820dp/key_strings.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="kfzs_duanduan_datashare_game_code">kfzs:duanduan:game:code</string>
+    <string name="kfzs_duanduan_datashare_package_name">kfzs:duanduan:game:package:name</string>
+    <string name="kfzs_duanduan_datashare_package_extras">kfzs:duanduan:game:package:extras</string>
+    <string name="kfzs_duanduan_datashare_game_key">kfzs:duanduan:game:key</string>
+    <string name="kfzs_duanduan_datashare_certification_key">kfzs:duanduan:certification:key</string>
+    <string name="kfzs_duanduan_datashare_certification_cancel">kfzs:duanduan:certification:cancel</string>
+    <string name="kfzs_duanduan_datashare_certificationed">kfzs:duanduan:certificationed</string>
+    <string name="kfzs_duanduan_datashare_certification_userid">kfzs:duanduan:certification:userid</string>
+    <string name="kfzs_duanduan_datashare_certification_token">kfzs:duanduan:certification:token</string>
+</resources>

+ 1 - 1
settings.gradle

@@ -1 +1 @@
-include ':app', ':datashare', ':view', ':ucrop'//, ':Aria', ':AriaAnnotations'
+include ':app', ':view', ':ucrop'//, ':Aria', ':datashare', ':AriaAnnotations'