소스 검색

Merge branch '2.8' into sheep2.0

Conflicts:
	app/src/main/java/com/sheep/gamegroup/util/SysAppUtil.java
liujiangyao 7 년 전
부모
커밋
938c2085f7
87개의 변경된 파일2560개의 추가작업 그리고 2546개의 파일을 삭제
  1. 1 1
      app/build.gradle
  2. 3 0
      app/src/main/AndroidManifest.xml
  3. 6 1
      app/src/main/java/com/kfzs/duanduan/event/EventTypes.java
  4. 2 7
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFind.java
  5. 25 22
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFindChild.java
  6. 1 19
      app/src/main/java/com/kfzs/duanduan/fragment/FgtGameAgencyRecharge.java
  7. 34 56
      app/src/main/java/com/kfzs/duanduan/fragment/FgtPersonalCenter.java
  8. 89 152
      app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java
  9. 24 0
      app/src/main/java/com/kfzs/duanduan/react/ReactUtil.java
  10. 1 1
      app/src/main/java/com/sheep/gamegroup/absBase/AbsChooseImageActivity.java
  11. 0 17
      app/src/main/java/com/sheep/gamegroup/di/components/FgtMakeMoneyComponent.java
  12. 0 17
      app/src/main/java/com/sheep/gamegroup/di/components/PersonalCenterComponent.java
  13. 0 22
      app/src/main/java/com/sheep/gamegroup/di/modules/PersonalCenterModule.java
  14. 7 15
      app/src/main/java/com/sheep/gamegroup/heler/TaskHelper.java
  15. 15 1
      app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java
  16. 14 0
      app/src/main/java/com/sheep/gamegroup/model/entity/DialogConfig.java
  17. 18 0
      app/src/main/java/com/sheep/gamegroup/model/entity/FindApp.java
  18. 10 0
      app/src/main/java/com/sheep/gamegroup/model/entity/SearchGameRecord.java
  19. 9 1
      app/src/main/java/com/sheep/gamegroup/model/entity/TaskAcceptedEty.java
  20. 5 0
      app/src/main/java/com/sheep/gamegroup/model/entity/TaskReleaseEty.java
  21. 0 2
      app/src/main/java/com/sheep/gamegroup/model/entity/UserEntity.java
  22. 1 2
      app/src/main/java/com/sheep/gamegroup/model/util/AddPuplicParameIntercept.java
  23. 2 1
      app/src/main/java/com/sheep/gamegroup/model/util/AutoTaskListUtil.java
  24. 2 1
      app/src/main/java/com/sheep/gamegroup/model/util/CacheInterceptor.java
  25. 3 9
      app/src/main/java/com/sheep/gamegroup/presenter/LoginPresenter.java
  26. 0 19
      app/src/main/java/com/sheep/gamegroup/presenter/PersonalCenterContract.java
  27. 0 52
      app/src/main/java/com/sheep/gamegroup/presenter/PersonalCenterPresenter.java
  28. 1 1
      app/src/main/java/com/sheep/gamegroup/presenter/SmallSheepPresenter.java
  29. 2 1
      app/src/main/java/com/sheep/gamegroup/presenter/TryMakeMoneyContract.java
  30. 23 5
      app/src/main/java/com/sheep/gamegroup/presenter/TryMakeMoneyPresenter.java
  31. 4 15
      app/src/main/java/com/sheep/gamegroup/statistics/AppStatistics.java
  32. 16 0
      app/src/main/java/com/sheep/gamegroup/util/ChannelContent.java
  33. 210 105
      app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java
  34. 24 3
      app/src/main/java/com/sheep/gamegroup/util/ConnectAddress.java
  35. 461 0
      app/src/main/java/com/sheep/gamegroup/util/DataUtil.java
  36. 25 0
      app/src/main/java/com/sheep/gamegroup/util/DeviceIDUtil.java
  37. 51 57
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  38. 4 5
      app/src/main/java/com/sheep/gamegroup/util/ListUtil.java
  39. 10 71
      app/src/main/java/com/sheep/gamegroup/util/MyDbManager.java
  40. 1 9
      app/src/main/java/com/sheep/gamegroup/util/ShareJs.java
  41. 13 11
      app/src/main/java/com/sheep/gamegroup/util/SysAppUtil.java
  42. 21 31
      app/src/main/java/com/sheep/gamegroup/util/TestUtil.java
  43. 3 2
      app/src/main/java/com/sheep/gamegroup/util/UMConfigUtils.java
  44. 12 0
      app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java
  45. 2 13
      app/src/main/java/com/sheep/gamegroup/util/WebviewJs.java
  46. 108 67
      app/src/main/java/com/sheep/gamegroup/view/activity/ActFindGame.java
  47. 65 47
      app/src/main/java/com/sheep/gamegroup/view/activity/ActFindInformation.java
  48. 1 7
      app/src/main/java/com/sheep/gamegroup/view/activity/ActMiDong.java
  49. 132 85
      app/src/main/java/com/sheep/gamegroup/view/activity/ActSearchGame.java
  50. 1 2
      app/src/main/java/com/sheep/gamegroup/view/activity/ActUserLabelList.java
  51. 5 17
      app/src/main/java/com/sheep/gamegroup/view/activity/ActWeb.java
  52. 283 0
      app/src/main/java/com/sheep/gamegroup/view/activity/ActXiaomiGame.java
  53. 4 5
      app/src/main/java/com/sheep/gamegroup/view/activity/ActXinwanWeb.java
  54. 6 15
      app/src/main/java/com/sheep/gamegroup/view/activity/BindOrChangeWeixinAct.java
  55. 5 8
      app/src/main/java/com/sheep/gamegroup/view/activity/ChangeTelAct.java
  56. 2 107
      app/src/main/java/com/sheep/gamegroup/view/activity/GamemakeMoneyAct.java
  57. 1 20
      app/src/main/java/com/sheep/gamegroup/view/activity/LoginAct.java
  58. 45 54
      app/src/main/java/com/sheep/gamegroup/view/activity/PersonalInfoAct.java
  59. 4 11
      app/src/main/java/com/sheep/gamegroup/view/activity/PhoneAct.java
  60. 44 80
      app/src/main/java/com/sheep/gamegroup/view/activity/RealNameAuthenAct.java
  61. 9 40
      app/src/main/java/com/sheep/gamegroup/view/activity/RechargeQAct.java
  62. 2 6
      app/src/main/java/com/sheep/gamegroup/view/activity/SignCardAct.java
  63. 8 8
      app/src/main/java/com/sheep/gamegroup/view/activity/SplashAct.java
  64. 47 23
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java
  65. 16 74
      app/src/main/java/com/sheep/gamegroup/view/activity/WithdrawalAct.java
  66. 332 0
      app/src/main/java/com/sheep/gamegroup/view/activity/XiaomiGameEntity.java
  67. 6 9
      app/src/main/java/com/sheep/gamegroup/view/adapter/TryMakeMoneyAdp.java
  68. 3 3
      app/src/main/java/com/sheep/gamegroup/view/dialog/DialogAddAccount.java
  69. 1 1
      app/src/main/java/com/sheep/gamegroup/view/dialog/DialogChooseImage.java
  70. 0 479
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGameMakeMoney.java
  71. 20 33
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMyGame.java
  72. 108 179
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtTryMakeMoney.java
  73. 11 1
      app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java
  74. 4 0
      app/src/main/java/com/sheep/jiuyan/samllsheep/service/DownloadService.java
  75. 1 16
      app/src/main/java/com/sheep/jiuyan/samllsheep/service/FloatService.java
  76. 0 186
      app/src/main/java/com/sheep/jiuyan/samllsheep/service/MonitorAppService.java
  77. 2 97
      app/src/main/java/com/sheep/jiuyan/samllsheep/utils/SpUtils.java
  78. 27 2
      app/src/main/java/org/afinal/simplecache/ApiKey.java
  79. BIN
      app/src/main/res/drawable-xxhdpi/splash_bg_img.webp
  80. 4 33
      app/src/main/res/layout/act_game_make_money.xml
  81. 2 2
      app/src/main/res/layout/empty_view.xml
  82. 4 2
      app/src/main/res/layout/fgt_try_makemoney_layout.xml
  83. 84 75
      app/src/main/res/layout/find_item.xml
  84. 4 2
      app/src/main/res/layout/task_detail_layout.xml
  85. 1 1
      app/src/main/res/layout/try_makemoney_act_layout.xml
  86. 1 0
      app/src/main/res/values/strings.xml
  87. 2 2
      gradle.properties

+ 1 - 1
app/build.gradle

@@ -66,7 +66,7 @@ android {
         ]
     }
     productFlavors {
-        sheeptest {
+        developSheeptest {
             applicationId "com.sheep.jiuyan.samllsheep"
             manifestPlaceholders = [DUANDUAN_GRAPH     : "sheeptest",
                                     DUANDUAN_DATASHARE : "sheeptest",

+ 3 - 0
app/src/main/AndroidManifest.xml

@@ -374,6 +374,9 @@
         <activity
             android:name="com.sheep.gamegroup.view.activity.SignRechargeAct"
             android:screenOrientation="portrait" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActXiaomiGame"
+            android:screenOrientation="portrait" />
 
 
         <!--友盟start-->

+ 6 - 1
app/src/main/java/com/kfzs/duanduan/event/EventTypes.java

@@ -26,14 +26,19 @@ public enum EventTypes {
 
     TASK_AGAIN_UPLOAD_FILE,//任务审核上传图片 通知
     TASK_AGAIN_UPLOAD_FILE_DATA,//任务审核上传图片 通知
-    REFRESH_DATA_PHONE,//刷新手机
     REFRESH_DATA_SIGN,//签到对话框
 
     GUIDE_NEXT,//引导页面下一步操作
     DELETE_GAME_ACCOUNT_REFRESH,//游戏删除账号,刷新界面
     GENERATION_ACCOUNT_REFRESH,//游戏代充,刷新界面
     GENERATION_ACCOUNT_REFRESH_ADAPTER,//游戏代充,刷新界面(下载)
+    DOWNLOAD_STOP,//下载暂停
+    DOWNLOAD_COMPLETE,//下载完成
+    DOWNLOAD_FAIL,//下载失败
+    DOWNLOAD_CANCEL,//下载取消
 
     //幂动科技
     REFRESH_MING_DONG,//刷新界面
+
+    REFRESH_XIAOMI_GAME_LIST,//刷新界面
 }

+ 2 - 7
app/src/main/java/com/kfzs/duanduan/fragment/FgtFind.java

@@ -4,26 +4,21 @@ import android.app.Activity;
 import android.os.Bundle;
 import android.support.design.widget.TabLayout;
 import android.support.v4.view.ViewPager;
-import android.view.View;
-import android.widget.LinearLayout;
-import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.mine.GiftpackListAdapter;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.FindTag;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 import org.afinal.simplecache.ApiKey;
 
-import java.lang.reflect.Field;
 import java.util.List;
 
 import butterknife.BindView;
@@ -68,7 +63,7 @@ public class FgtFind extends BaseCompatFragment {
                     @Override
                     public void onError(BaseMessage baseMessage) {
                         //无数据时尝试获取缓存数据
-                        List<FindTag> newList = CommonUtil.getInstance().getCacheList(ApiKey.articles_tags, FindTag.class);
+                        List<FindTag> newList = DataUtil.getInstance().getCacheList(ApiKey.articles_tags, FindTag.class);
                         if(loadList(newList))
                             G.showToast(baseMessage);
                     }

+ 25 - 22
app/src/main/java/com/kfzs/duanduan/fragment/FgtFindChild.java

@@ -7,15 +7,12 @@ import android.support.annotation.Nullable;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
-import android.text.Html;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.ImageView;
-import android.widget.RelativeLayout;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
 import com.arialyy.annotations.Download;
 import com.arialyy.aria.core.Aria;
 import com.arialyy.aria.core.download.DownloadTask;
@@ -31,9 +28,9 @@ import com.sheep.gamegroup.model.entity.FindTag;
 import com.sheep.gamegroup.model.entity.HomeListEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.ViewHolder;
 import com.sheep.gamegroup.util.ViewUtil;
@@ -113,7 +110,7 @@ public class FgtFindChild extends BaseCompatFragment {
         refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
             @Override
             public void onRefresh() {
-                initData();
+                refreshData();
                 refresh.setRefreshing(false);
             }
         });
@@ -273,7 +270,16 @@ public class FgtFindChild extends BaseCompatFragment {
         }
     }
 
-    private void initData(){
+    public void initData(){
+        //先尝试获取缓存数据
+        List<FindItem> newList = DataUtil.getInstance().getCacheList(ApiKey.articles(type), FindItem.class);
+        if(loadList(newList))
+            refreshData();
+        else
+            notifyDataSetChanged();
+    }
+
+    public void refreshData(){
         empty_view.setVisibility(View.INVISIBLE);
         SysAppUtil.checkNet(new Action1<Integer>() {
             @Override
@@ -299,25 +305,22 @@ public class FgtFindChild extends BaseCompatFragment {
 
                             @Override
                             public void onError(BaseMessage baseMessage) {
-                                //无数据时尝试获取缓存数据
-                                List<FindItem> newList = CommonUtil.getInstance().getCacheList(ApiKey.articles(type), FindItem.class);
-                                if(loadList(newList))
-                                    notifyDataSetChanged();
-                            }
-                            //没有添加数据返回true
-                            private boolean loadList(List<FindItem> newList){
-                                if(!ListUtil.isEmpty(newList)){
-                                    list.clear();
-                                    ListUtil.addAll(list, newList);
-                                    if(!list.isEmpty())
-                                        list.add(null);//底部部分----我是有底线的
-                                    notifyDataSetChanged();
-                                    return false;
-                                }
-                                return true;
+                                notifyDataSetChanged();
                             }
                         });
     }
+    //没有添加数据返回true
+    private boolean loadList(List<FindItem> newList){
+        if(!ListUtil.isEmpty(newList)){
+            list.clear();
+            ListUtil.addAll(list, newList);
+            if(!list.isEmpty())
+                list.add(null);//底部部分----我是有底线的
+            notifyDataSetChanged();
+            return false;
+        }
+        return true;
+    }
 
     private void notifyDataSetChanged(){
         CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());

+ 1 - 19
app/src/main/java/com/kfzs/duanduan/fragment/FgtGameAgencyRecharge.java

@@ -220,26 +220,8 @@ public class FgtGameAgencyRecharge extends BaseCompatFragment {
             case GENERATION_ACCOUNT_REFRESH:
                 initData();
                 break;
-            case GENERATION_ACCOUNT_REFRESH_ADAPTER:
-                if(event.getData() instanceof DownloadTask){
-                    DownloadTask task = (DownloadTask) event.getData();
-                    try {
-                        int p = task.getPercent();    //任务进度百分比
-                        String speed = task.getConvertSpeed();    //转换单位后的下载速度,单位转换需要在配置文件中打开
-                        System.out.println("Aria "+task.getKey()+",p " + p + ", speed = " + speed);
-                        String url = task.getKey();
-                        TextView tvProgress = recyclerview.findViewWithTag(TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST + url);
-                        if (tvProgress == null) {
-                            return;
-                        }
-                        tvProgress.setText(String.format(Locale.CHINA, "%d%%",Math.abs(p)));
-
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                }
-                break;
         }
+        CommonUtil.getInstance().setEventResultViewStatus(event, recyclerview);
     }
     @Override
     public void onDestroy() {

+ 34 - 56
app/src/main/java/com/kfzs/duanduan/fragment/FgtPersonalCenter.java

@@ -11,29 +11,24 @@ import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSONObject;
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.kfzs.duanduan.utils.ApkUtils;
-import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.model.entity.AgentEntity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.UserEntity;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.activity.PersonalCenterAct;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
-import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 import org.afinal.simplecache.ACache;
+import org.afinal.simplecache.ApiKey;
 
 import java.util.Locale;
 
@@ -41,13 +36,9 @@ import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
 import butterknife.Unbinder;
-import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
-import rx.schedulers.Schedulers;
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_AGENT;
-import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_CLEAN;
-import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_CLEAN_SURE;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_FAQ;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_SHARE;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_UPGRADE;
@@ -76,7 +67,7 @@ public class FgtPersonalCenter extends BaseCompatFragment {
     View personal_center_version_new;
     Unbinder unbinder;
 
-    private UserEntity userEntitys;
+    private UserEntity userEntity;
     private String faqUrl;
     private String agentUrl;
 
@@ -126,20 +117,8 @@ public class FgtPersonalCenter extends BaseCompatFragment {
                 }
             }
         });
-
-        SheepApp.getInstance().getNetComponent().getApiService().getInfo()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(getContext()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        updateData(baseMessage);
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                    }
-                });
+        initUserInfo();
+        initWidget();
         String newVersionUrl = ACache.get(SheepApp.getInstance()).getAsString("version_url");
         personal_center_version_new.setVisibility(TextUtils.isEmpty(newVersionUrl) ? View.GONE : View.VISIBLE);
         String appVersionName = ApkUtils.getCurrentPkgVersionName(SheepApp.getInstance());
@@ -148,22 +127,17 @@ public class FgtPersonalCenter extends BaseCompatFragment {
 
     }
 
-    private void updateData(BaseMessage baseMessage) {
-        userEntitys = baseMessage.getData(UserEntity.class);
-        try {
-            MyDbManager.getInstance().saveOrUpdateUser(userEntitys);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+    private void initUserInfo() {
+        userEntity = DataUtil.getInstance().getUserEntity();
         initWidget();
     }
 
     private void initWidget() {
 
-        personalcenter_item_price_tv.setText(String.format(Locale.CHINA, "%s\u0020元", userEntitys.getBalance()));
-        ViewUtil.setText(nameTv, userEntitys.getNickname());
-        sheepNumTv.setText(String.format(Locale.CHINA, "绵羊号:%s", userEntitys.getInvitation_code()));
-        GlideImageLoader.setAvatar(iconImgIv, userEntitys.getAvatar(), Color.argb(128, 255, 255, 255));
+        personalcenter_item_price_tv.setText(String.format(Locale.CHINA, "%s\u0020元", userEntity.getBalance()));
+        ViewUtil.setText(nameTv, userEntity.getNickname());
+        sheepNumTv.setText(String.format(Locale.CHINA, "绵羊号:%s", userEntity.getInvitation_code()));
+        GlideImageLoader.setAvatar(iconImgIv, userEntity.getAvatar(), Color.argb(128, 255, 255, 255));
 
     }
 
@@ -191,7 +165,7 @@ public class FgtPersonalCenter extends BaseCompatFragment {
         switch (view.getId()) {
             case R.id.icon_img_iv://图片
             case R.id.account_detail_layout://个人资料
-                Jump2View.getInstance().goPersionInfo(activity, userEntitys);
+                Jump2View.getInstance().goPersionInfo(activity, null);
                 break;
             case R.id.personalcenter_price_layout://我的资产
                 Jump2View.getInstance().goMyMoney(activity, null);
@@ -200,25 +174,29 @@ public class FgtPersonalCenter extends BaseCompatFragment {
                 Jump2View.getInstance().goTaskList2View(activity, null);
                 break;
             case R.id.proxy_service_layout://代理
-                Object url_config = ACache.get(activity).getAsObject("url_config");
-                if(url_config instanceof JSONObject) {
-                    agentUrl = ((JSONObject) url_config).getString("agenturl");
-                    if (!TextUtils.isEmpty(agentUrl))
-                        Jump2View.getInstance().goWeb(activity, agentUrl, "代理服务");
-                    else
-                        G.showToast(R.string.loading_data);
-                }
+                CommonUtil.getInstance().initUrlConfigByNet("agenturl", new Action1<String>(){
+                    @Override
+                    public void call(String url) {
+                        agentUrl = url;
+                        if (!TextUtils.isEmpty(agentUrl))
+                            Jump2View.getInstance().goWeb(activity, agentUrl, "代理服务");
+                        else
+                            G.showToast(R.string.loading_data);
+                    }
+                });
                 USER_AGENT.onEvent();
                 break;
             case R.id.faq_layout://FAQ帮助
-                Object url_config1 = ACache.get(activity).getAsObject("url_config");
-                if(url_config1 instanceof JSONObject) {
-                    faqUrl = ((JSONObject) url_config1).getString("faqurl");
-                    if (!TextUtils.isEmpty(faqUrl))
-                        Jump2View.getInstance().goWeb(activity, faqUrl, "FAQ帮助");
-                    else
-                        Jump2View.getInstance().goWeb(activity, "http://smallstation.kfzs.com/h5_faq/#/faq", "FAQ帮助");
-                }
+                CommonUtil.getInstance().initUrlConfigByNet("faqurl", new Action1<String>(){
+                    @Override
+                    public void call(String url) {
+                        faqUrl = url;
+                        if (!TextUtils.isEmpty(faqUrl))
+                            Jump2View.getInstance().goWeb(activity, faqUrl, "FAQ帮助");
+                        else
+                            Jump2View.getInstance().goWeb(activity, "http://smallstation.kfzs.com/h5_faq/#/faq", "FAQ帮助");
+                    }
+                });
                 USER_FAQ.onEvent();
                 break;
             case R.id.reservation_layout://游戏预约
@@ -228,8 +206,8 @@ public class FgtPersonalCenter extends BaseCompatFragment {
                 Jump2View.getInstance().goFeedbackAct(activity);
                 break;
             case R.id.recommend_friend_layout://推荐给好友
-                if (userEntitys != null) {
-                    ViewUtil.shareLink(activity, userEntitys.getShareLink());
+                if (userEntity != null) {
+                    ViewUtil.shareLink(activity, userEntity.getShareLink());
                 }
                 USER_SHARE.onEvent();
                 break;

+ 89 - 152
app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java

@@ -14,7 +14,6 @@ import android.support.v7.app.AlertDialog;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.View;
@@ -23,9 +22,7 @@ import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
 import com.kfzs.duanduan.BaseCompatFragment;
@@ -33,7 +30,6 @@ import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.react.ReactUtil;
 import com.kfzs.duanduan.react.SharedPreferences;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
-import com.mdad.sdk.mdsdk.AdManager;
 import com.sheep.gamegroup.di.components.DaggerSmallSheepComponent;
 import com.sheep.gamegroup.di.modules.SmallSheepModule;
 import com.sheep.gamegroup.di.modules.TryMakeMoneyModule;
@@ -59,18 +55,16 @@ import com.sheep.gamegroup.presenter.SmallSheepPresenter;
 import com.sheep.gamegroup.presenter.TryMakeMoneyContract;
 import com.sheep.gamegroup.presenter.TryMakeMoneyPresenter;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.MyGridview;
 import com.sheep.gamegroup.util.MyListview;
-import com.sheep.gamegroup.util.PreferenceUtils;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.util.ViewUtil;
-import com.sheep.gamegroup.util.glide.GlideCircleTransformWithBorder;
 import com.sheep.gamegroup.view.activity.NotificationsUtils;
 import com.sheep.gamegroup.view.adapter.AdpHomeListGrideview;
 import com.sheep.gamegroup.view.adapter.AdpHomeListListview;
@@ -188,10 +182,16 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                     loadUserInfo();
                     break;
                 case 1:
+                    position = 0;
+                    List<TaskAcceptedEty> allTaskAcceptedTaskList = DataUtil.getInstance().getAllTaskAcceptedTaskList();
+                    if(!ListUtil.isEmpty(allTaskAcceptedTaskList)){
+                        tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, allTaskAcceptedTaskList), position);
+                        position++;
+                    }
+                    DataUtil.getInstance().checkOtherList(allTaskAcceptedTaskList, releaseEtyLists);
                     tryMakeMoneyAdp.setIs_succession(3);
-                    if (releaseEtyLists != null && releaseEtyLists.size() > 0) {
-
-                        tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists), position > 2 ? 1 : position);
+                    if(!ListUtil.isEmpty(releaseEtyLists)) {
+                        tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists), position);
                     }
                     tryMakeMoneyAdp.notifyDataSetChanged();
                     checkAndInitView();
@@ -328,48 +328,38 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         }
 
         //用户信息
-        userEntity = CommonUtil.getInstance().getCacheResult(ApiKey.get_info, UserEntity.class);
+        userEntity = DataUtil.getInstance().getUserEntity();
         if(userEntity == null){//onResume中从网络获取
         } else {
             loadUserInfo();
         }
 
         //实时动态
-        List<MoreDataEntity> cacheMoreDataEtyList = CommonUtil.getInstance().getCacheList(ApiKey.award_detail, MoreDataEntity.class);
+        List<MoreDataEntity> cacheMoreDataEtyList = DataUtil.getInstance().getCacheList(ApiKey.award_detail, MoreDataEntity.class);
         if(ListUtil.isEmpty(cacheMoreDataEtyList)){
             pagePresenter.getAwardDetail();
         } else {
             invite(cacheMoreDataEtyList);
         }
-        //正在运行的任务
-        position = 0;
+        //任务
         releaseEtyLists.clear();
         tryMakeMoneyAdp.clear();
         tryMakeMoneyAdp.addType(1);
+        tryMakeMoneyAdp.addPresenter(tryMakeMoneyPresenter);
         for (int i = 0; i < 2; i++) {
             tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
         }
-        List<TaskAcceptedEty> cacheTaskAcceptedEtyList = CommonUtil.getInstance().getCacheList(ApiKey.new_run_task(3), TaskAcceptedEty.class);
-        if (ListUtil.isEmpty(cacheTaskAcceptedEtyList)) {//onResume中从网络获取
-
-        } else {
-            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, cacheTaskAcceptedEtyList), position);
-            tryMakeMoneyAdp.addPresenter(tryMakeMoneyPresenter);
-            position++;
-        }
-        List<TaskReleaseEty> cacheTaskReleaseEtyList = CommonUtil.getInstance().getCacheList(ApiKey.release_task, TaskReleaseEty.class);
-        if (ListUtil.isEmpty(cacheTaskReleaseEtyList)) {//onResume中从网络获取
-
+        List<TaskReleaseEty> cacheTaskReleaseEtyList = DataUtil.getInstance().getCacheList(ApiKey.release_task, TaskReleaseEty.class);
+        if (cacheTaskReleaseEtyList == null) {
+            initOtherTaskList();
         } else {
+            releaseEtyLists.clear();
             releaseEtyLists.addAll(cacheTaskReleaseEtyList);
+            mHanderl.sendEmptyMessage(1);
         }
 
-        tryMakeMoneyAdp.setIs_succession(3);
-        tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists), position);
-        tryMakeMoneyAdp.notifyDataSetChanged();
-
         //公告
-        List<BulletinEnty> cacheBulletinEtyList = CommonUtil.getInstance().getCacheList(ApiKey.bulletin, BulletinEnty.class);
+        List<BulletinEnty> cacheBulletinEtyList = DataUtil.getInstance().getCacheList(ApiKey.bulletin, BulletinEnty.class);
         if(ListUtil.isEmpty(cacheBulletinEtyList)){
             homepageItemNoticeLayout.setVisibility(View.GONE);
             pagePresenter.bulletin(null);
@@ -379,7 +369,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             inviteNotice(bulletinEntyLists);
         }
         //轮播
-        List<SlideshowEty> cacheSlideshowEtyList = CommonUtil.getInstance().getCacheList(ApiKey.slideshow, SlideshowEty.class);
+        List<SlideshowEty> cacheSlideshowEtyList = DataUtil.getInstance().getCacheList(ApiKey.slideshow, SlideshowEty.class);
         if(ListUtil.isEmpty(cacheSlideshowEtyList)){
             banner.setVisibility(View.GONE);
             pagePresenter.slideshow(null);
@@ -392,7 +382,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             bindBanner();
         }
         //首页list
-        List<HomeListEntity> cacheHomeListEtyList = CommonUtil.getInstance().getCacheList(ApiKey.home_list, HomeListEntity.class);
+        List<HomeListEntity> cacheHomeListEtyList = DataUtil.getInstance().getCacheList(ApiKey.home_list, HomeListEntity.class);
         if(ListUtil.isEmpty(cacheHomeListEtyList)){
             home_list_gridview_layout.setVisibility(View.GONE);
             pagePresenter.homeList();//首页list
@@ -400,6 +390,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             home_list_gridview_layout.setVisibility(View.VISIBLE);
             homeListEntitys.addAll(cacheHomeListEtyList);
             boolean isShowQB = false;
+            boolean isShowMd = false;
             for (int i = 0; i < homeListEntitys.size(); i++) {
                 if (i < 4) {
                     homeListEntitysGridview.add(homeListEntitys.get(i));
@@ -410,18 +401,16 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                     isShowQB = !isShowQB;
                 }
                 if (homeListEntitys.get(i).getJump().equals("14")) {//幂动科技
-
-
+                    isShowMd = !isShowMd;
+                    CommonUtil.getInstance().initMiDong(activity, DataUtil.getInstance().getUserId());
                 }
             }
             SheepApp.getInstance().setShowQB(isShowQB);
+            SheepApp.getInstance().setShowMidong(isShowMd);
             adpHomeListGrideview.notifyDataSetChanged();
             adpHomeListListview.notifyDataSetChanged();
             home_list_gridview_listview.setVisibility(homeListEntitysListview.isEmpty() ? View.GONE : View.VISIBLE);
         }
-
-        //详情分享地址
-        CommonUtil.getInstance().initUrlConfigByNet(activity);
     }
     public void refreshData() {
         SysAppUtil.checkNet(new Action1<Integer>() {
@@ -436,9 +425,6 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                 }
             }
         });
-        mInitData();
-    }
-    private void mInitData() {
         if (upview1 != null) {
             //停止滚动
             upview1.stopFlipping();
@@ -455,14 +441,12 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             pagePresenter.getAwardDetail();
         }
 
-        recyclerInitData();//任务
+        DataUtil.getInstance().reInitAcceptedTaskList();
+        initOtherTaskList();//任务
         pagePresenter.bulletin(null);//公告
         pagePresenter.slideshow(null);//轮播
         pagePresenter.homeList();//首页list
 
-        //详情分享地址
-        CommonUtil.getInstance().initUrlConfigByNet(activity);
-
     }
 
     /**
@@ -485,17 +469,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         home_list_gridview_gv.setAdapter(adpHomeListGrideview);
     }
 
-    private void recyclerInitData() {
-
-
-        position = 0;
-        releaseEtyLists.clear();
-        tryMakeMoneyAdp.clear();
-        tryMakeMoneyAdp.addType(1);
-        for (int i = 0; i < 2; i++) {
-            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
-        }
-
+    private void initOtherTaskList() {
         RequestParameEty parameEty = new RequestParameEty();
         parameEty.setHashMap(
                 CommonUtil.getInstance()
@@ -505,9 +479,8 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                                 1,
                                 0,
                                 0,
-                                -1 + "",
+                                 "-1",
                                 3));
-
         tryMakeMoneyPresenter.releaseTask(parameEty);
     }
 
@@ -545,31 +518,12 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             return;
         }
         BaseMessage baseMessage = (BaseMessage) o;
-        userEntity = JSON.parseObject(JSONObject.toJSONString(baseMessage.getData()), UserEntity.class);
+        userEntity = baseMessage.getData(UserEntity.class);
         if(userEntity == null){
             return;
         }
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                //幂动科技
-                CommonUtil.getInstance().initMiDong(activity, userEntity.getId());
-            }
-        }, 500);
-        //保存用户id信息
-        PreferenceUtils.setPrefString(SheepApp.mContext, UMConfigUtils.LOGIN_OPENID, userEntity.getOpen_id());
-        //保存用户邀请人邀请码
-        PreferenceUtils.setPrefString(SheepApp.mContext, "invitation_code", userEntity.getParent_code());
-        try {
-            MyDbManager.getInstance().saveOrUpdateUser(userEntity);
-
-//            userEntity = MyDbManager.getInstance().dbFindUser();
-            Log.e("------userEntity", userEntity.getNickname() + "|" + userEntity.getMobile() + "");
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        DataUtil.getInstance().setUserEntity(userEntity);
         mHanderl.sendEmptyMessage(0);
-        Jump2View.getInstance().tryShowNewbieTask(activity, userEntity, newbie_task);
     }
 
     @Override
@@ -589,10 +543,13 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     }
 
     @Override
-    public void giveUpTaskSuccesView(Object o) {
+    public void giveUpTaskSuccesView(Object object) {
         G.showToast("取消任务成功");
-        recyclerInitData();
-
+        if(object instanceof Integer)
+            DataUtil.getInstance().removeAcceptedTask((Integer) object);
+        else
+            DataUtil.getInstance().reInitAcceptedTaskList();
+        initOtherTaskList();
     }
 
     @Override
@@ -602,23 +559,10 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
     @Override
     public void returnTaskTaskUpdataView(Object o) {
-
-
-        try {
-            position = 0;
-            BaseMessage baseMessage = (BaseMessage) o;
-            List<TaskAcceptedEty> taskAcceptedEty = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), TaskAcceptedEty.class);
-            AutoTaskListUtil.getInstance().loadList(taskAcceptedEty);
-            if (taskAcceptedEty != null && taskAcceptedEty.size() > 0) {
-                tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, taskAcceptedEty), position);
-                tryMakeMoneyAdp.addPresenter(tryMakeMoneyPresenter);
-                position++;
-            }
-
-//            mhandler.sendEmptyMessage(0);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        BaseMessage baseMessage = (BaseMessage) o;
+        List<TaskAcceptedEty> taskAcceptedEtyList = baseMessage.getDataList(TaskAcceptedEty.class);
+        AutoTaskListUtil.getInstance().loadList(taskAcceptedEtyList);
+        DataUtil.getInstance().reloadAcceptedTaskList(taskAcceptedEtyList);
         mHanderl.sendEmptyMessage(1);
     }
 
@@ -643,31 +587,19 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     }
 
     @Override
-    public void releaseTaskTaskUpdataView(Object o) {
-
-        position = 0;
-        try {
-            BaseMessage baseMessage = (BaseMessage) o;
-            List<TaskReleaseEty> releaseEtyList = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), TaskReleaseEty.class);
+    public void releaseTaskTaskUpdataView(Object object) {
+        if(object instanceof BaseMessage) {
+            List<TaskReleaseEty> releaseEtyList = ((BaseMessage) object).getDataList(TaskReleaseEty.class);
             if (releaseEtyList != null) {
                 releaseEtyLists.clear();
                 releaseEtyLists.addAll(releaseEtyList);
+                mHanderl.sendEmptyMessage(1);
             }
-
-        } catch (Exception e) {
-            e.printStackTrace();
         }
-        //请求正在运行中的任务
-        CommonUtil.getInstance()
-                .getRunTask(tryMakeMoneyPresenter,
-                        3);
     }
 
     @Override
     public void failReleaseTask2View(Object o) {
-        CommonUtil.getInstance()
-                .getRunTask(tryMakeMoneyPresenter,
-                        3);
     }
 
     @Override
@@ -675,7 +607,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         activity.runOnUiThread(new Runnable() {
             @Override
             public void run() {
-                setViews(loginEty);
+                invite(loginEty);
             }
         });
 
@@ -753,6 +685,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                 homeListEntitysListview.clear();
                 homeListEntitys.addAll(homeListEntity);
                 boolean isShowQB = false;
+                boolean isShowMd = false;
                 for (int i = 0; i < homeListEntitys.size(); i++) {
                     if (i < 4) {
                         homeListEntitysGridview.add(homeListEntitys.get(i));
@@ -762,8 +695,13 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                     if (homeListEntitys.get(i).getJump().equals("6")) {//6Q币充值
                         isShowQB = !isShowQB;
                     }
+                    if (homeListEntitys.get(i).getJump().equals("14")) {//幂动科技
+                        isShowMd = !isShowMd;
+                        CommonUtil.getInstance().initMiDong(activity, DataUtil.getInstance().getUserId());
+                    }
                 }
                 SheepApp.getInstance().setShowQB(isShowQB);
+                SheepApp.getInstance().setShowMidong(isShowMd);
                 adpHomeListGrideview.notifyDataSetChanged();
                 adpHomeListListview.notifyDataSetChanged();
                 home_list_gridview_listview.setVisibility(homeListEntitysListview.isEmpty() ? View.GONE : View.VISIBLE);
@@ -797,10 +735,23 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     @Override
     public void onResume() {
         super.onResume();
-        if(pagePresenter != null) {
-            pagePresenter.getUserInfo();
-            recyclerInitData();//任务
+        UserEntity result = DataUtil.getInstance().getUserEntity();
+        if(result == null) {
+            CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
+                @Override
+                public void call(UserEntity item) {
+                    if(item != null) {
+                        userEntity = item;
+                        loadUserInfo();
+                    }
+                }
+            });
+        } else {
+            userEntity = result;
+            loadUserInfo();
         }
+        Jump2View.getInstance().tryShowNewbieTask(activity, userEntity, newbie_task);
+        DataUtil.getInstance().initACacheAcceptedTaskList();
     }
 
     @Override
@@ -816,29 +767,14 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         }
     }
 
-    private void setViews(final List<MoreDataEntity> loginEty) {
-
-        invite(loginEty);
-//        new Handler().postDelayed(new Runnable(){
-//            public void run() {
-//
-//            }
-//        },60000*2);
-
-
-    }
-
-    private void invite(final List<MoreDataEntity> loginEty) {
+    private void invite(final List<MoreDataEntity> moreDataEntityList) {
         views.clear();
         upview1.removeAllViews();
-        for (MoreDataEntity entity : loginEty) {
+        for (MoreDataEntity entity : moreDataEntityList) {
             StringBuilder sb = new StringBuilder();
             sb.append(TimeStamp2Date(entity.getTime())).append("   ");
             sb.append(entity.getName()).append("   ");
             sb.append(entity.getDesc());
-//            LinearLayout moreView = (LinearLayout) LayoutInflater.from(activity).inflate(R.layout.x_item_view, null);
-//            TextView tv_desc = moreView.findViewById(R.id.tv_desc);
-//            tv_desc.setText(sb.toString());
             TextView moreView = (TextView) LayoutInflater.from(activity).inflate(R.layout.x_item_view, null);
             moreView.setText(sb.toString());
             views.add(moreView);
@@ -865,7 +801,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     public void onEventMainThread(BigEvent event) {
         switch (event.getEventTypes()) {
             case ONFRESH_FGT_FAMLLSHEEP:
-                refreshData();
+                mHanderl.sendEmptyMessage(1);
                 break;
         }
     }
@@ -923,13 +859,9 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-        try {
-            userEntity = MyDbManager.getInstance().dbFindUser();
-            if (userEntity != null) {
-                loadUserInfo();
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
+        userEntity = DataUtil.getInstance().getUserEntity();
+        if (userEntity != null) {
+            loadUserInfo();
         }
     }
 
@@ -951,12 +883,12 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         banner.setVisibility(View.VISIBLE);
         //设置图片加载器
         banner.setImageLoader(new ImageLoader() {
-                    @Override
-                    public void displayImage(Context context, Object o, ImageView imageView) {
-                        if (o instanceof SlideshowEty)
-                            Glide.with(context).load(((SlideshowEty) o).getUrl()).apply(new RequestOptions().dontAnimate()).into(imageView);
-                    }
-                })
+            @Override
+            public void displayImage(Context context, Object o, ImageView imageView) {
+                if (o instanceof SlideshowEty)
+                    Glide.with(context).load(((SlideshowEty) o).getUrl()).apply(new RequestOptions().dontAnimate()).into(imageView);
+            }
+        })
                 .setDelayTime(4000)
                 .setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE)
                 //设置图片集合
@@ -991,7 +923,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     }
 
     private void clickBanner(int position) {
-        SlideshowEty clickedGameObj = ListUtil.getIndex(slideshowEtyLists, position);
+        SlideshowEty clickedGameObj = ListUtil.getItem(slideshowEtyLists, position);
         if (clickedGameObj == null) {
             return;
         }
@@ -1037,8 +969,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
                 break;
             case 6://连续任务
-                Jump2View.getInstance()
-                        .goTryplayView(activity, 1);
+                Jump2View.getInstance().goSequentialTaskView(activity);
                 break;
             case 9://打卡赚钱
                 showToast("打卡赚钱");
@@ -1061,6 +992,9 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             case 14://幂动科技
                 Jump2View.getInstance().goMiDong(activity, null);
                 break;
+            case 15://小米游戏列表
+                Jump2View.getInstance().goXiaomiGameList(activity, null);
+                break;
             default:
                 G.showToast(R.string.coming_soon);
                 break;
@@ -1115,6 +1049,9 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             case 14://幂动科技
                 Jump2View.getInstance().goMiDong(activity, null);
                 break;
+            case 15://小米游戏列表
+                Jump2View.getInstance().goXiaomiGameList(activity, null);
+                break;
         }
     }
 

+ 24 - 0
app/src/main/java/com/kfzs/duanduan/react/ReactUtil.java

@@ -17,6 +17,30 @@ public class ReactUtil {
     /**
      * 是否进入调试模式
      */
+    public static final boolean isHasConnectConfig() {
+        File sdDir = null;
+        boolean sdCardExist = Environment.getExternalStorageState()
+                .equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在
+        if (sdCardExist) {
+            sdDir = Environment.getExternalStorageDirectory();//获取跟目录
+        }
+        return sdDir != null && new File(sdDir, "smallSheep.config").exists();
+    }
+    /**
+     * 是否进入rn调试模式
+     */
+    public static final String getConectConfig() {
+        File sdDir = null;
+        boolean sdCardExist = Environment.getExternalStorageState()
+                .equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在
+        if (sdCardExist) {
+            sdDir = Environment.getExternalStorageDirectory();//获取跟目录
+        }
+        return FileUtil.readFile(new File(sdDir, "smallSheep.config").getAbsolutePath());
+    }
+    /**
+     * 是否进入rn调试模式
+     */
     public static final boolean isSmallDebug() {
         File sdDir = null;
         boolean sdCardExist = Environment.getExternalStorageState()

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/absBase/AbsChooseImageActivity.java

@@ -52,7 +52,7 @@ public abstract class AbsChooseImageActivity extends BaseActivity implements UpF
                 .setPhotoCount(photoCount)
                 .setShowCamera(true)
                 .setShowGif(false)
-                .setPreviewEnabled(false)
+                .setPreviewEnabled(true)
                 .start(this, PhotoPicker.REQUEST_CODE);
     }
 

+ 0 - 17
app/src/main/java/com/sheep/gamegroup/di/components/FgtMakeMoneyComponent.java

@@ -1,17 +0,0 @@
-package com.sheep.gamegroup.di.components;
-
-import com.sheep.gamegroup.di.modules.TryMakeMoneyModule;
-import com.sheep.gamegroup.di.scopes.UserScope;
-import com.sheep.gamegroup.view.fragment.FgtGameMakeMoney;
-
-import dagger.Component;
-
-/**
- * Created by ljy on 2018/6/12.
- */
-
-@UserScope
-@Component(modules = TryMakeMoneyModule.class, dependencies = NetComponent.class)
-public interface FgtMakeMoneyComponent {
-    void inject(FgtGameMakeMoney fgtGameMakeMoney);
-}

+ 0 - 17
app/src/main/java/com/sheep/gamegroup/di/components/PersonalCenterComponent.java

@@ -1,17 +0,0 @@
-package com.sheep.gamegroup.di.components;
-
-import com.sheep.gamegroup.di.modules.PersonalCenterModule;
-import com.sheep.gamegroup.di.scopes.UserScope;
-import com.sheep.gamegroup.view.activity.PersonalCenterAct;
-
-
-import dagger.Component;
-
-/**
- * Created by ljy on 2018/3/10.
- */
-@UserScope
-@Component(modules = PersonalCenterModule.class,dependencies = NetComponent.class)
-public interface PersonalCenterComponent {
-    void inject(PersonalCenterAct personalCenterAct);
-}

+ 0 - 22
app/src/main/java/com/sheep/gamegroup/di/modules/PersonalCenterModule.java

@@ -1,22 +0,0 @@
-package com.sheep.gamegroup.di.modules;
-
-import com.sheep.gamegroup.presenter.PersonalCenterContract;
-
-import dagger.Module;
-import dagger.Provides;
-
-/**
- * Created by ljy on 2018/3/10.
- */
-@Module
-public class PersonalCenterModule {
-    private PersonalCenterContract.View view;
-
-    public PersonalCenterModule(PersonalCenterContract.View view) {
-        this.view = view;
-    }
-    @Provides
-    public PersonalCenterContract.View provideView(){
-        return view;
-    }
-}

+ 7 - 15
app/src/main/java/com/sheep/gamegroup/heler/TaskHelper.java

@@ -17,6 +17,7 @@ import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.TaskReleaseEty;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
@@ -28,6 +29,8 @@ import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
+import org.afinal.simplecache.ApiKey;
+
 import java.util.List;
 import java.util.Locale;
 
@@ -53,21 +56,9 @@ public class TaskHelper {
     public void initAcceptedTask(Activity activity, final int release_task_id) {
         this.activity = activity;
         this.release_task_id = release_task_id;
-        SheepApp.getInstance().getNetComponent().getApiService().getAcceptedTaskDetail(release_task_id)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        taskAcceptedEty = baseMessage.getData(TaskAcceptedEty.class);
-                        initTask(release_task_id);
-                    }
 
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        initTask(release_task_id);
-                    }
-                });
+        taskAcceptedEty = DataUtil.getInstance().getTaskAcceptedTaskByReleaseTaskId(release_task_id);
+        initTask(release_task_id);
     }
     private TaskReleaseEty taskReleaseEty;
     private void initTask(int release_task_id) {
@@ -228,6 +219,7 @@ public class TaskHelper {
                                             .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                                                 @Override
                                                 public void onNext(BaseMessage baseMessage) {
+                                                    DataUtil.getInstance().removeAcceptedTask(taskAcceptedEty.getId());
                                                     refreshTask();
                                                 }
 
@@ -319,7 +311,7 @@ public class TaskHelper {
         clear();
         taskAcceptedEty = null;
         taskReleaseEty = null;
-        initAcceptedTask(activity, release_task_id);
+        initTask(release_task_id);
     }
     private int reloadDataType;//0 不刷新数据 1刷新 taskAcceptedEty
     public void onResume() {

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

@@ -99,9 +99,10 @@ public interface ApiService {
 
     /**
      * 获取自己正在运行的任务
+     * show_game_task: 0 不显示游戏任务
      */
     @GET("app/accepted_task/new_run_task/")
-    Observable<BaseMessage> returnTask(@Query("is_succession") int is_succession);
+    Observable<BaseMessage> returnTask(@Query("is_succession") int is_succession, @Query("show_game_task") int show_game_task);
     /**
      * 自动提交时长任务
      *
@@ -698,4 +699,17 @@ public interface ApiService {
      */
     @GET("app/release_task/game_task")
     Observable<BaseMessage> releaseGameTask(@Query("page") int page, @Query("per_page") int per_page,@Query("is_hot") int is_hot, @Query("task_type") String task_type, @Query("name") String name);
+    /**
+     *获取小米游戏列表
+     * platform 1:安卓 2:IOS
+     * download_type  1:非预约下载 2:预约下载
+     */
+    @GET("app/xiaomi/list")
+    Observable<BaseMessage> xiaomiGameList(@Query("page") int page, @Query("per_page") int per_page,@Query("platform") int platform , @Query("download_type") int download_type, @Query("name") String name);
+
+    /**
+     *领取小米游戏账号
+     */
+    @POST("app/xiaomi/Receive")
+    Observable<BaseMessage> receiveXiaomiAccount(@Body JSONObject id);
 }

+ 14 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/DialogConfig.java

@@ -19,6 +19,7 @@ public class DialogConfig {
     private View.OnClickListener btnLeftOnClickListener;
     private String btnRightText;
     private View.OnClickListener btnRightOnClickListener;
+    private View.OnClickListener btnCloseOnClickListener;
     private String msgMore;
     private int msgMoreColor;//颜色资源
     private String tip;
@@ -100,6 +101,19 @@ public class DialogConfig {
         return this;
     }
 
+    public View.OnClickListener getBtnCloseOnClickListener() {
+        return btnCloseOnClickListener;
+    }
+
+    public DialogConfig setBtnCloseOnClickListener(View.OnClickListener btnCloseOnClickListener) {
+        this.btnCloseOnClickListener = btnCloseOnClickListener;
+        return this;
+    }
+
+    public void setColorMsgMap(Map<String, String> colorMsgMap) {
+        this.colorMsgMap = colorMsgMap;
+    }
+
     public View.OnClickListener getBtnRightOnClickListener() {
         return btnRightOnClickListener;
     }

+ 18 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/FindApp.java

@@ -49,6 +49,24 @@ public class FindApp implements IDownload {
     private int download;//1:可以下载
 
     private int record;//1:可记录 其他:不可记录
+    private int receive_account;//integer($int64)0:未领取账号 1:已领取账号
+    private int available_receive;//0:可领取账号 1:不可领取账号
+
+    public int getAvailable_receive() {
+        return available_receive;
+    }
+
+    public void setAvailable_receive(int available_receive) {
+        this.available_receive = available_receive;
+    }
+
+    public int getReceive_account() {
+        return receive_account;
+    }
+
+    public void setReceive_account(int receive_account) {
+        this.receive_account = receive_account;
+    }
 
     public void setUpdated_at(int updated_at){
         this.updated_at = updated_at;

+ 10 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/SearchGameRecord.java

@@ -13,6 +13,16 @@ public class SearchGameRecord {
     private String input;
     @Column(name = "time")
     private long time;
+    @Column(name = "type")//1:小米游戏的数据
+    private int type;
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
 
     public String getInput() {
         return input;

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

@@ -130,6 +130,14 @@ public class TaskAcceptedEty implements Serializable{
 
     @Override
     public boolean equals(Object obj) {
-        return obj instanceof TaskAcceptedEty && ((TaskAcceptedEty) obj).id == id;
+        return obj instanceof TaskAcceptedEty &&
+                (((TaskAcceptedEty) obj).id == id || ( release_task != null && release_task.equals(((TaskAcceptedEty) obj).getRelease_task())));
+    }
+
+
+
+
+    public boolean isIs_running() {
+        return status == 1 || status == 2;
     }
 }

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

@@ -244,6 +244,11 @@ public class TaskReleaseEty implements Serializable{
     }
 
 
+    @Override
+    public boolean equals(Object obj) {
+        return obj instanceof TaskReleaseEty && ((TaskReleaseEty) obj).getId() == id;
+    }
+
     /**
      * 任务是否下线
      * @return

+ 0 - 2
app/src/main/java/com/sheep/gamegroup/model/entity/UserEntity.java

@@ -3,8 +3,6 @@ package com.sheep.gamegroup.model.entity;
 import android.text.TextUtils;
 
 import com.sheep.gamegroup.util.TestUtil;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-
 import org.xutils.db.annotation.Column;
 import org.xutils.db.annotation.Table;
 

+ 1 - 2
app/src/main/java/com/sheep/gamegroup/model/util/AddPuplicParameIntercept.java

@@ -4,7 +4,6 @@ import android.text.TextUtils;
 
 import com.sheep.gamegroup.model.api.BaseMessageConverter;
 import com.sheep.gamegroup.util.DeviceUtil;
-import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
@@ -66,7 +65,7 @@ public class AddPuplicParameIntercept implements Interceptor {
                     body = RequestBody.create(requestBody.contentType(), newJsonParams);
             }
         }
-        String id = SpUtils.getOpenId(SheepApp.mContext);
+        String id = SpUtils.getToken(SheepApp.mContext);
         String deviceId = DeviceUtil.getDeviceId(SheepApp.mContext);
         Request r = oldRequest.newBuilder()
                 .addHeader("Authorization", TextUtils.isEmpty(id) ? "" : id)//header 会覆盖以前的  header

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/model/util/AutoTaskListUtil.java

@@ -9,6 +9,7 @@ import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
 import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.TaskReleaseEty;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 
@@ -68,7 +69,7 @@ public class AutoTaskListUtil {
         //下面的功能主要是初始化 正在运行的应用自动审核任务列表
         AutoTaskListUtil.getInstance().clear();
         SheepApp.getInstance().getNetComponent().getApiService()
-                .returnTask(3)
+                .returnTask(3, 1)
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/model/util/CacheInterceptor.java

@@ -27,6 +27,7 @@ import okio.BufferedSource;
  */
 public class CacheInterceptor implements Interceptor {
     private static final Charset UTF8 = Charset.forName("UTF-8");
+    public static final int DEFAULT_SAVE_TIME = 300;//单位秒
 
     public Response intercept(Chain chain) throws IOException {
         Request request = chain.request();
@@ -67,7 +68,7 @@ public class CacheInterceptor implements Interceptor {
                         ACache aCache = ACache.get(SheepApp.getInstance());
                         if (response.code() == 200 && "GET".equals(request.method())) {//成功则缓存get数据
                             LogUtil.println("sheepLog", "aCache", "key", "=", key);
-                            aCache.put(key, result, 300);//默认缓存5分钟
+                            aCache.put(key, result, DEFAULT_SAVE_TIME);//默认缓存5分钟
                         } else {
                             aCache.remove(key);
                         }

+ 3 - 9
app/src/main/java/com/sheep/gamegroup/presenter/LoginPresenter.java

@@ -7,16 +7,14 @@ import com.sheep.gamegroup.model.entity.LoginEntity;
 import com.sheep.gamegroup.model.util.EntityUtils;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.ChannelContent;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.FastJsonUtils;
-import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.PreferenceUtils;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
-import org.xutils.ex.DbException;
-
 import javax.inject.Inject;
 
 import rx.android.schedulers.AndroidSchedulers;
@@ -85,12 +83,8 @@ public class LoginPresenter implements LoginContract.Presenter {
         LoginEntity loginEty = null;
         if(baseMessage!=null){
             loginEty =FastJsonUtils.toBean( JSONObject.toJSONString(baseMessage.getData()),LoginEntity.class);
-            SpUtils.login(SheepApp.mContext, loginEty.getToken());
-            try {
-                MyDbManager.getInstance().saveOrUpdateUser(loginEty.getUser());
-            } catch (DbException e) {
-                e.printStackTrace();
-            }
+            SpUtils.saveToken(SheepApp.mContext, loginEty.getToken());
+            DataUtil.getInstance().setUserEntity(loginEty.getUser());
         }
         view.NetSuccess(1,"登录成功", EntityUtils.getUserCode(loginEty));
         TestUtil.saveUser(loginEty);

+ 0 - 19
app/src/main/java/com/sheep/gamegroup/presenter/PersonalCenterContract.java

@@ -1,19 +0,0 @@
-package com.sheep.gamegroup.presenter;
-
-/**
- * Created by ljy on 2018/3/10.
- */
-
-public interface PersonalCenterContract {
-
-    interface Persenter{
-
-        void getUserInfo();
-    }
-
-    interface View {
-
-        void updateData2View(Object o);
-        void failData2View(Object o);
-    }
-}

+ 0 - 52
app/src/main/java/com/sheep/gamegroup/presenter/PersonalCenterPresenter.java

@@ -1,52 +0,0 @@
-package com.sheep.gamegroup.presenter;
-
-import android.util.Log;
-
-import com.sheep.gamegroup.model.api.ApiService;
-import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.SpUtils;
-
-import javax.inject.Inject;
-
-import rx.android.schedulers.AndroidSchedulers;
-import rx.schedulers.Schedulers;
-
-/**
- * Created by ljy on 2018/3/10.
- */
-
-public class PersonalCenterPresenter implements PersonalCenterContract.Persenter {
-    private PersonalCenterContract.View view;
-    private ApiService apiService;
-
-    @Inject
-    public PersonalCenterPresenter(PersonalCenterContract.View view, ApiService apiService) {
-        this.view = view;
-        this.apiService = apiService;
-    }
-
-    @Override
-    public void getUserInfo() {
-        String token = SpUtils.getOpenId(SheepApp.mContext);
-
-        Log.e("token---user",token+"");
-        apiService.getInfo()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        view.failData2View(baseMessage);
-
-                    }
-
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        view.updateData2View(baseMessage);
-
-                    }
-                });
-    }
-}

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/presenter/SmallSheepPresenter.java

@@ -34,7 +34,7 @@ public class SmallSheepPresenter implements SmallSheepContract.Persenter {
 
     @Override
     public void getUserInfo() {
-        String token = SpUtils.getOpenId(SheepApp.mContext);
+        String token = SpUtils.getToken(SheepApp.mContext);
 
         Log.e("token---user",token+"");
         apiService.getInfo()

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/presenter/TryMakeMoneyContract.java

@@ -11,7 +11,8 @@ public interface TryMakeMoneyContract {
     interface Presenter{
         void getData(Object o);
         void acceptedTask(RequestParameEty o);//获取已接受的任务
-        void returnTask(RequestParameEty o);//获取我正在运行的任务
+        void returnTask(int is_succession);//获取我正在运行的任务
+        void runGameTask();//获取正在运行的游戏任务
         void releaseTask(RequestParameEty o);//获取正在运行的任务
 
         void giveUpTask(int id);//放弃任务接口

+ 23 - 5
app/src/main/java/com/sheep/gamegroup/presenter/TryMakeMoneyPresenter.java

@@ -53,10 +53,28 @@ public class TryMakeMoneyPresenter implements TryMakeMoneyContract.Presenter {
     }
 
     @Override
-    public void returnTask(RequestParameEty o) {
+    public void returnTask(int is_succession) {
 
-        HashMap<String, String> hashMap = o.getHashMap();
-        apiService.returnTask(Integer.valueOf(hashMap.get("is_succession")))
+        apiService.returnTask(is_succession, 0)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        view.failReturnTask2View(baseMessage);
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        view.returnTaskTaskUpdataView(baseMessage);
+
+                    }
+                });
+    }
+    @Override
+    public void runGameTask() {
+
+        apiService.run_game_task()
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
@@ -99,8 +117,8 @@ public class TryMakeMoneyPresenter implements TryMakeMoneyContract.Presenter {
     }
 
     @Override
-    public void giveUpTask(int id) {
-        apiService.giveUpTask(id)
+    public void giveUpTask(final int acceptedId) {
+        apiService.giveUpTask(acceptedId)
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {

+ 4 - 15
app/src/main/java/com/sheep/gamegroup/statistics/AppStatistics.java

@@ -1,16 +1,12 @@
 package com.sheep.gamegroup.statistics;
 
-import android.text.TextUtils;
-
 import com.alibaba.fastjson.JSONObject;
+import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.sheep.gamegroup.model.api.ApiService;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.ActivityManager;
-import com.sheep.gamegroup.util.PreferenceUtils;
-import com.sheep.gamegroup.view.activity.ChangeTelAct;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
 import rx.android.schedulers.AndroidSchedulers;
 import rx.schedulers.Schedulers;
@@ -47,20 +43,13 @@ public class AppStatistics {
      * @param subString
      */
     synchronized public void sendDataToServer(int type,int subType,String subString){
-        String id = SpUtils.getOpenId(SheepApp.mContext);
-        String openid = TextUtils.isEmpty(id) ? "" : id.split("@")[0];
-        //openid要转换成int类型
-        int uid = 0;
-        if(!TextUtils.isEmpty(openid)){
-            uid = Integer.parseInt(openid);
-        }
         ApiService apiService =SheepApp.getInstance().getNetComponent().getApiService();
         JSONObject jsonObject = new JSONObject();
-        jsonObject.put("uid",uid);
+        jsonObject.put("uid", NumberFormatUtils.parseInteger(DataUtil.getInstance().getUserId()));
         jsonObject.put("type",type);
         jsonObject.put("subtype",subType);
         jsonObject.put("substring",subString);
-        jsonObject.put("invitation_code",  PreferenceUtils.getPrefString(SheepApp.mContext, "invitation_code", ""));
+        jsonObject.put("invitation_code", DataUtil.getInstance().getUserParentCode());
         apiService.appEventTracking(jsonObject).subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {

+ 16 - 0
app/src/main/java/com/sheep/gamegroup/util/ChannelContent.java

@@ -2,9 +2,14 @@ package com.sheep.gamegroup.util;
 
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
 import android.text.TextUtils;
 
+import com.kfzs.duanduan.utils.ApkUtils;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+
 import java.io.BufferedReader;
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.util.Enumeration;
@@ -93,6 +98,17 @@ public class ChannelContent {
                 }
             }
         }
+        if(!hasChannelFile){//zip方式获取渠道
+            try {
+                PackageInfo packageInfo = ApkUtils.getPackageInfo(SheepApp.getInstance().getPackageName());
+                if(packageInfo != null && !TextUtils.isEmpty(packageInfo.applicationInfo.sourceDir)) {
+                    channel_name = ZipChannelUtil.readQUA(new File(packageInfo.applicationInfo.sourceDir));
+                    hasChannelFile = !TextUtils.isEmpty(channel_name);
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
         return hasChannelFile;
     }
     public String getChannel_name() {

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

@@ -1,10 +1,13 @@
 package com.sheep.gamegroup.util;
 
+import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.content.Context;
+import android.content.Intent;
 import android.graphics.Color;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.GradientDrawable;
+import android.net.Uri;
 import android.os.Handler;
 import android.os.Message;
 import android.support.design.widget.TabLayout;
@@ -23,6 +26,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.alipay.sdk.app.PayTask;
 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.event.BigEvent;
@@ -34,6 +38,7 @@ import com.sheep.gamegroup.alipay.PayResult;
 import com.sheep.gamegroup.model.api.BaseMessageConverter;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.DialogConfig;
+import com.sheep.gamegroup.model.entity.FindApp;
 import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.HomeListEntity;
 import com.sheep.gamegroup.model.entity.RequestParameEty;
@@ -48,6 +53,7 @@ import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.presenter.TryMakeMoneyPresenter;
 import com.sheep.gamegroup.usage.AppUsageManager;
 import com.sheep.gamegroup.view.activity.GameTaskOrderListAct;
+import com.sheep.gamegroup.view.activity.XiaomiGameEntity;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -62,6 +68,7 @@ import com.umeng.socialize.media.UMImage;
 import com.umeng.socialize.media.UMWeb;
 
 import org.afinal.simplecache.ACache;
+import org.afinal.simplecache.ApiKey;
 import org.greenrobot.eventbus.EventBus;
 
 import java.io.File;
@@ -81,6 +88,9 @@ import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.XIAOMI_GAME_RECEIVE;
+import static com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST;
+
 /**
  * 一些公用的class
  * Created by ljy on 2018/3/21.
@@ -420,7 +430,7 @@ public class CommonUtil {
                         entity.getUrl(), "微信二维码辅助好友注册任务");
                 break;
             case 8://连续任务
-                Jump2View.getInstance().goTryplayView(context, 1);
+                Jump2View.getInstance().goSequentialTaskView(context);
                 break;
             case 9://打卡赚钱
                 Jump2View.getInstance().goSignCardAct(context, null);
@@ -444,6 +454,9 @@ public class CommonUtil {
             case 14://幂动科技
                 Jump2View.getInstance().goMiDong((Activity) context, null);
                 break;
+            case 15://小米游戏列表
+                Jump2View.getInstance().goXiaomiGameList((Activity) context, null);
+                break;
             default:
                 G.showToast(R.string.coming_soon);
                 break;
@@ -498,9 +511,8 @@ public class CommonUtil {
                 activity.hideProgress();
             }
         });
-        SpUtils.login(activity, "");
-        SpUtils.saveWeixin(activity, "");
-        SpUtils.savePhone(activity, "");
+        SpUtils.saveToken(activity, "");
+        DataUtil.getInstance().clearData();
         ActivityManager.getInstance().finishAllActivity();
         Jump2View.getInstance().goLoginView(activity,"");
 
@@ -521,26 +533,6 @@ public class CommonUtil {
     }
 
     /**
-     * 获取正在进行中的任务
-     */
-    public void getRunTask(TryMakeMoneyPresenter presenter,
-                           int is_succession){
-
-        RequestParameEty parameEty = new RequestParameEty();
-        parameEty.setHashMap(
-                CommonUtil.getInstance()
-                        .setHashMap(1,
-                                100,
-                                SheepApp.getInstance().getConnectAddress().getPlatForm(),
-                                1,
-                                0,
-                                0,
-                                -1+"",
-                                is_succession));
-        presenter.returnTask(parameEty);
-    }
-
-    /**
      * 设置 drawLeft drawRight
      */
     public void setDraw2View(Context context, TextView view, int res, int color){
@@ -573,11 +565,7 @@ public class CommonUtil {
                         if(userEntity == null){
                             return;
                         }
-                        try {
-                            MyDbManager.getInstance().saveOrUpdateUser(userEntity);
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
+                        DataUtil.getInstance().setUserEntity(userEntity);
                     }
                 });
     }
@@ -865,27 +853,36 @@ public class CommonUtil {
      * find_share_url;//发现详情分享
      * task_desc_url;//分享任务详情
      */
-    public void initUrlConfigByNet(final Context context){
-        SheepApp.get(context)
-                .getNetComponent()
-                .getApiService()
-                .getNameUrl()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-//                        G.showToast(baseMessage.getMsg() +"");
-
-                    }
+    public void initUrlConfigByNet(final String name, final Action1<String> action1){
+        JSONObject url_config = DataUtil.getInstance().getCacheResult(ApiKey.url, JSONObject.class);
+        if(url_config == null) {
+            SheepApp.get(SheepApp.getInstance())
+                    .getNetComponent()
+                    .getApiService()
+                    .getNameUrl()
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                            action1.call(null);
+                        }
 
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        Object urlConfig = baseMessage.getData();
-                        if(urlConfig instanceof JSONObject)
-                            ACache.get(context).put("url_config", (JSONObject) urlConfig);
-                    }
-                });
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                            JSONObject urlConfig = baseMessage.getData(JSONObject.class);
+                            if(urlConfig == null) {
+                                action1.call(null);
+                            } else {
+                                String url = urlConfig.getString(name);
+                                action1.call(url);
+                            }
+                        }
+                    });
+        } else {
+            String url = url_config.getString(name);
+            action1.call(url);
+        }
     }
     /**
      * 获取详情地址
@@ -1038,11 +1035,7 @@ public class CommonUtil {
                     public void onNext(BaseMessage baseMessage) {
                         UserEntity userEntity = baseMessage.getData(UserEntity.class);
                         if (userEntity != null) {
-                            try {
-                                MyDbManager.getInstance().saveOrUpdateUser(userEntity);
-                            } catch (Exception e) {
-                                e.printStackTrace();
-                            }
+                            DataUtil.getInstance().setUserEntity(userEntity);
                         }
                         if (action1 != null)
                             action1.call(userEntity);
@@ -1328,6 +1321,42 @@ public class CommonUtil {
                 });
     }
     /**
+     * 游戏任务
+     */
+    public void xiaomiGame(final Context context,int page,int per_page, final String name, final Action1<BaseMessage> action1) {
+        ViewUtil.newInstance().showProgress((Activity) context);
+
+        SheepApp.getInstance()
+                .getNetComponent()
+                .getApiService()
+                .xiaomiGameList(
+                        page,
+                        per_page,
+                        1,
+                        1,
+                        name)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        ViewUtil.newInstance().hideProgress((Activity) context);
+                        G.showToast(baseMessage.getMsg());
+                        if (action1 != null)
+                            action1.call(null);
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        ViewUtil.newInstance().hideProgress((Activity) context);
+
+                        if (action1 != null)
+                            action1.call(baseMessage);
+
+                    }
+                });
+    }
+    /**
      * 充值游戏游戏任务
      */
     public void gameTaskList(final Context context, final int task_type,final String name, final Action1<BaseMessage> action1) {
@@ -1434,56 +1463,6 @@ public class CommonUtil {
 
     }
 
-    public <T> T getCacheResult(String key, Class<T> classT) {
-        ACache aCache = ACache.get(SheepApp.getInstance());
-        String cacheData = aCache.getAsString(SheepApp.getInstance().getConnectAddress().getAppUrl() + "v1/" + key);
-        if (!TextUtils.isEmpty(cacheData)) {
-            if (BuildConfig.XXTEA_ENCRYPT) {
-                cacheData = BaseMessageConverter.decrypt(cacheData);
-            }
-            return JSON.parseObject(cacheData, BaseMessage.class).getData(classT);
-        }
-        return null;
-    }
-    public void resetCacheTime(String key, int saveTime) {
-        ACache aCache = ACache.get(SheepApp.getInstance());
-        String realKey = SheepApp.getInstance().getConnectAddress().getAppUrl() + "v1/" + key;
-        String cacheData = aCache.getAsString(realKey);
-        if (!TextUtils.isEmpty(cacheData)) {
-            aCache.put(realKey, cacheData, saveTime);
-        }
-    }
-
-    public <T> List<T> getCacheList(String key, Class<T> classT) {
-        ACache aCache = ACache.get(SheepApp.getInstance());
-        String cacheData = aCache.getAsString(SheepApp.getInstance().getConnectAddress().getAppUrl() + "v1/" + key);
-        if (!TextUtils.isEmpty(cacheData)) {
-            if (BuildConfig.XXTEA_ENCRYPT) {
-                cacheData = BaseMessageConverter.decrypt(cacheData);
-            }
-            return JSON.parseObject(cacheData, BaseMessage.class).getDataList(classT);
-        }
-        return null;
-    }
-
-    /**
-     * 设置缓存数据的时间
-     * @param key
-     */
-    public void setSaveTime(String key) {
-        ACache aCache = ACache.get(SheepApp.getInstance());
-        aCache.put(key + "saveTime", String.valueOf(System.currentTimeMillis()));
-    }
-
-    /**
-     * 获取缓存数据的时间
-     * @param key
-     * @return
-     */
-    public long getSaveTime(String key) {
-        ACache aCache = ACache.get(SheepApp.getInstance());
-        return NumberFormatUtils.parseLong(aCache.getAsString(key + "saveTime"));
-    }
     //设置无数据显示
     public void updateEmptyView(View empty_view, boolean showEmpty) {
         if(showEmpty) {
@@ -1515,10 +1494,136 @@ public class CommonUtil {
      *  appId为应用id,开发者可联系后台获取
      *  id 用户uid
      */
-    public void initMiDong(Activity activity, String id){
+    public boolean initMiDong(Activity activity, String id){
         if(!SheepApp.getInstance().isInitMidong() && !TextUtils.isEmpty(id)){
             SheepApp.getInstance().setInitMidong(true);
             AdManager.getInstance(activity).init(activity, "40",id+"");
+            return true;
         }
+        return false;
+    }
+
+    /**
+     * 小米游戏账号领取
+     */
+    public void xiaomiRevieceAcctoun(TextView find_information_game_task_top, final Object items, final Activity activity){
+        XIAOMI_GAME_RECEIVE.onEvent();
+        find_information_game_task_top.setText("领取福利号");
+        find_information_game_task_top.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+
+                JSONObject jsonObject = new JSONObject();
+                if(items instanceof XiaomiGameEntity){
+
+                    jsonObject.put("id", ((XiaomiGameEntity)items).getId());
+                }else if(items instanceof FindApp){
+                    jsonObject.put("id", ((FindApp)items).getId());
+                }
+
+                ViewUtil.newInstance().showProgress((Activity) activity);
+                SheepApp.getInstance()
+                        .getNetComponent()
+                        .getApiService()
+                        .receiveXiaomiAccount(jsonObject)
+                        .subscribeOn(Schedulers.io())
+                        .observeOn(AndroidSchedulers.mainThread())
+                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                            @Override
+                            public void onError(BaseMessage baseMessage) {
+                                G.showToast(baseMessage.getMsg());
+                                ViewUtil.newInstance().hideProgress((Activity) activity);
+                            }
+
+                            @SuppressLint({"StringFormatInvalid", "LocalSuppress"})
+                            @Override
+                            public void onNext(BaseMessage baseMessage) {
+                                G.showToast(baseMessage.getMsg());
+                                ViewUtil.newInstance().hideProgress(activity);
+                                final JSONObject jsonObject1 = JSONObject.parseObject(JSONObject.toJSONString(baseMessage.getData()));
+                                String text = String.format(activity.getResources().getString(R.string.get_xiaomi_game_success_dialog),
+                                        jsonObject1!= null?jsonObject1.getString("account"):"*****",
+                                        jsonObject1!= null?jsonObject1.getString("password"):"*****");
+
+                                ViewUtil.showMsgDialog(activity,
+                                        text,
+                                        "恭喜你获得福利号",
+                                        "截图保存",
+                                        "我知道了",
+                                        new View.OnClickListener() {
+                                            @Override
+                                            public void onClick(View v) {
+                                                File file = ViewUtil.saveImage((View) v.getParent().getParent(), ClassFileHelper.DIR, System.currentTimeMillis() + ".jpg");
+                                                if (file != null) {
+                                                    Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+                                                    Uri uri = Uri.fromFile(file);
+                                                    intent.setData(uri);
+                                                    activity.sendBroadcast(intent); // 发送广播通知相册
+                                                } else {
+                                                    if (jsonObject1 != null)
+                                                        ViewUtil.sysSaveImage((View) v.getParent().getParent(), "小绵羊-小米", "小绵羊-小米账号");
+                                                }
+                                                G.showToast("已保存");
+                                                EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.REFRESH_XIAOMI_GAME_LIST));
+                                            }
+                                        },
+                                        new View.OnClickListener() {
+                                            @Override
+                                            public void onClick(View v) {
+
+                                                EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.REFRESH_XIAOMI_GAME_LIST));
+                                            }
+                                        },
+                                        new View.OnClickListener() {
+                                            @Override
+                                            public void onClick(View v) {
+                                                EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.REFRESH_XIAOMI_GAME_LIST));
+                                            }
+                                        });
+
+                            }
+                        });
+            }
+        });
+    }
+
+    /**
+     * 下载回调 状态修改
+     */
+    public void setEventResultViewStatus(BigEvent event, View view){
+        if(event.getData() instanceof DownloadTask){
+            DownloadTask task = (DownloadTask) event.getData();
+            String url = task.getKey();
+            TextView tvProgress = view.findViewWithTag(PUBLIC_TAG_PREFIX_TEXTVIEW_LIST + url);
+            switch (event.getEventTypes()){
+                case GENERATION_ACCOUNT_REFRESH_ADAPTER:
+                    try {
+                        int p = task.getPercent();    //任务进度百分比
+                        String speed = task.getConvertSpeed();    //转换单位后的下载速度,单位转换需要在配置文件中打开
+                        System.out.println("Aria "+task.getKey()+",p " + p + ", speed = " + speed);
+                        if (tvProgress == null) {
+                            return;
+                        }
+                        tvProgress.setText(String.format(Locale.CHINA, "%d%%",Math.abs(p)));
+
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    break;
+                case DOWNLOAD_STOP:
+                    tvProgress.setText("继续下载");
+                    break;
+                case DOWNLOAD_COMPLETE:
+                    tvProgress.setText("安装游戏");
+                    break;
+                case DOWNLOAD_CANCEL:
+                    tvProgress.setText("下载取消");
+                    break;
+                case DOWNLOAD_FAIL:
+                    tvProgress.setText("下载失败");
+                    break;
+            }
+        }
+
     }
 }

+ 24 - 3
app/src/main/java/com/sheep/gamegroup/util/ConnectAddress.java

@@ -1,6 +1,7 @@
 package com.sheep.gamegroup.util;
 
 
+import com.kfzs.duanduan.react.ReactUtil;
 import com.kfzs.duanduan.react.SharedPreferences;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -41,7 +42,7 @@ public enum ConnectAddress {
         public String getName() {
             return "张伟";
         }
-    },sheeptest {
+    },developSheeptest {
 
         @Override
         public String getAppUrl() {
@@ -49,14 +50,24 @@ public enum ConnectAddress {
         }
         @Override
         public String getName() {
-            return "测试服";
+            return "开发测试服";
         }
-    },sheeptestnei {
+    },sheeptest {
 
         @Override
         public String getAppUrl() {
             return "http://testnei.ss.kfzs.com/";
         }
+        @Override
+        public String getName() {
+            return "黄海测试服";
+        }
+    },sheepfz {
+
+        @Override
+        public String getAppUrl() {
+            return "http://simul.ss.kfzs.com/";
+        }
 
         @Override
         public String getName() {
@@ -113,6 +124,16 @@ public enum ConnectAddress {
     }
 
     public ConnectAddress getDefultConnectAddress() {
+        if(TestUtil.isTest()){
+            if(ReactUtil.isHasConnectConfig()) {
+                String flavor = ReactUtil.getConectConfig();
+                try {
+                    return ConnectAddress.valueOf(flavor);
+                } catch (IllegalArgumentException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
         String flavor = TestUtil.isSheep() ? "sheep" : SharedPreferences.getInstance().getString("flavor", BuildConfig.FLAVOR);
         try {
             return ConnectAddress.valueOf(flavor);

+ 461 - 0
app/src/main/java/com/sheep/gamegroup/util/DataUtil.java

@@ -0,0 +1,461 @@
+package com.sheep.gamegroup.util;
+
+import android.text.TextUtils;
+
+import com.alibaba.fastjson.JSON;
+import com.kfzs.duanduan.event.BigEvent;
+import com.kfzs.duanduan.event.EventTypes;
+import com.kfzs.duanduan.utils.NumberFormatUtils;
+import com.sheep.gamegroup.model.api.BaseMessageConverter;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
+import com.sheep.gamegroup.model.entity.TaskReleaseEty;
+import com.sheep.gamegroup.model.entity.UserEntity;
+import com.sheep.gamegroup.model.util.AutoTaskListUtil;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.jiuyan.samllsheep.BuildConfig;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.SpUtils;
+
+import org.afinal.simplecache.ACache;
+import org.afinal.simplecache.ApiKey;
+import org.greenrobot.eventbus.EventBus;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import rx.android.schedulers.AndroidSchedulers;
+import rx.functions.Action1;
+import rx.schedulers.Schedulers;
+
+/**
+ * Created by realicing on 2018/7/27.
+ * realicing@sina.com
+ */
+public class DataUtil {
+    private static DataUtil instance = new DataUtil();
+
+    private DataUtil() {
+        userEntity = getCacheResult(ApiKey.get_info, UserEntity.class);//先从缓存中初始化用户信息
+        String id = SpUtils.getToken(SheepApp.mContext);
+        String uid = TextUtils.isEmpty(id) ? "" : id.split("@")[0];
+        if (userEntity != null && !TextUtils.equals(userEntity.getId(), uid)) {//当前用户id与缓存的用户信息不符时,清除缓存
+            clearData();
+        }
+
+    }
+
+    public static DataUtil getInstance() {
+        if (instance == null) {
+            instance = new DataUtil();
+        }
+        return instance;
+    }
+
+    /**
+     * 清除数据
+     */
+    public void clearData() {
+        userEntity = null;
+        clearCache(ApiKey.get_info);//清除用户信息的缓存
+    }
+
+    //-----------------------------------------用户信息部分-----------------------------------------------------开始
+    private UserEntity userEntity;
+
+    public UserEntity getUserEntity() {
+        return userEntity;
+    }
+
+    public void setUserEntity(UserEntity userEntity) {
+        this.userEntity = userEntity;
+    }
+
+    /**
+     * 获取当前用户的邀请码
+     *
+     * @return
+     */
+    public String getInvitationCode() {
+        UserEntity userEntity = DataUtil.getInstance().getUserEntity();
+        if (userEntity != null && userEntity.getInvitation_code() != null)
+            return userEntity.getInvitation_code();
+        return "";
+    }
+
+    /**
+     * 获取当前用户的id
+     *
+     * @return
+     */
+    public String getUserId() {
+        UserEntity userEntity = DataUtil.getInstance().getUserEntity();
+        if (userEntity != null && userEntity.getId() != null)
+            return userEntity.getId();
+        return "";
+    }
+
+    /**
+     * 获取当前用户的邀请人的邀请码
+     *
+     * @return
+     */
+    public String getUserParentCode() {
+        UserEntity userEntity = DataUtil.getInstance().getUserEntity();
+        if (userEntity != null && userEntity.getParent_code() != null)
+            return userEntity.getParent_code();
+        return "";
+    }
+
+    /**
+     * 获取当前用户的手机号
+     *
+     * @return
+     */
+    public String getUserMobile() {
+        UserEntity userEntity = DataUtil.getInstance().getUserEntity();
+        if (userEntity != null && userEntity.getMobile() != null)
+            return userEntity.getMobile();
+        return "";
+    }
+
+    public void setUserMobile(String mobile) {
+        if (userEntity != null)
+            userEntity.setMobile(mobile);
+    }
+
+    /**
+     * 获取当前用户的微信id
+     *
+     * @return
+     */
+    public String getUserWxOpenId() {
+        UserEntity userEntity = DataUtil.getInstance().getUserEntity();
+        if (userEntity != null && userEntity.getWx_openid() != null)
+            return userEntity.getWx_openid();
+        return "";
+    }
+
+    /**
+     * 获取当前用户的微信昵称
+     *
+     * @return
+     */
+    public String getUserWxNicknName() {
+        UserEntity userEntity = DataUtil.getInstance().getUserEntity();
+        if (userEntity != null && userEntity.getWx_nickname() != null)
+            return userEntity.getWx_nickname();
+        return "";
+    }
+
+    public void setUserWxNickName(String wx_nickname) {
+        if (userEntity != null)
+            userEntity.setWx_nickname(wx_nickname);
+
+    }
+
+    //-----------------------------------------用户信息部分-----------------------------------------------------结束
+
+    //-----------------------------------------缓存数据部分-----------------------------------------------------开始
+    public <T> T getCacheResult(String key, Class<T> classT) {
+        ACache aCache = ACache.get(SheepApp.getInstance());
+        String cacheData = aCache.getAsString(SheepApp.getInstance().getConnectAddress().getAppUrl() + "v1/" + key);
+        if (!TextUtils.isEmpty(cacheData)) {
+            if (BuildConfig.XXTEA_ENCRYPT) {
+                cacheData = BaseMessageConverter.decrypt(cacheData);
+            }
+            return JSON.parseObject(cacheData, BaseMessage.class).getData(classT);
+        }
+        return null;
+    }
+
+    /**
+     * 重新设置api为key的数据的时间为saveTime,若本身没有数据,则保存空数据
+     * @param key
+     * @param saveTime 单位秒
+     */
+    public void resetCacheTime(String key, int saveTime) {
+        ACache aCache = ACache.get(SheepApp.getInstance());
+        String realKey = SheepApp.getInstance().getConnectAddress().getAppUrl() + "v1/" + key;
+        String cacheData = aCache.getAsString(realKey);
+        if (!TextUtils.isEmpty(cacheData)) {
+            aCache.put(realKey, cacheData, saveTime);
+        } else {
+            aCache.put(realKey, "", saveTime);
+        }
+    }
+
+    /**
+     * 获取缓存的数据列表,为空代表没有获取过,为空字符串代表之前获取数据为空列表
+     * @param key
+     * @param classT
+     * @param <T>
+     * @return
+     */
+    public <T> List<T> getCacheList(String key, Class<T> classT) {
+        ACache aCache = ACache.get(SheepApp.getInstance());
+        String cacheData = aCache.getAsString(SheepApp.getInstance().getConnectAddress().getAppUrl() + "v1/" + key);
+        if (cacheData == null) {
+            return null;
+        } else if(cacheData.isEmpty()){
+            return ListUtil.emptyList();
+        }
+        if (BuildConfig.XXTEA_ENCRYPT) {
+            cacheData = BaseMessageConverter.decrypt(cacheData);
+        }
+        return JSON.parseObject(cacheData, BaseMessage.class).getDataList(classT);
+    }
+
+    /**
+     * 设置key的saveTime缓存时间为当前时间
+     *
+     * @param key
+     */
+    public void setSaveTime(String key) {
+        ACache aCache = ACache.get(SheepApp.getInstance());
+        aCache.put(key + "saveTime", String.valueOf(System.currentTimeMillis()));
+    }
+
+    /**
+     * 获取缓存的key的saveTime时间
+     *
+     * @param key
+     * @return
+     */
+    public long getSaveTime(String key) {
+        ACache aCache = ACache.get(SheepApp.getInstance());
+        return NumberFormatUtils.parseLong(aCache.getAsString(key + "saveTime"));
+    }
+
+    /**
+     * 设置taskAcceptedEty的saveTime缓存时间为time
+     *
+     * @param taskAcceptedEty
+     */
+    public void saveTaskAcceptedSaveTime(TaskAcceptedEty taskAcceptedEty) {
+        ACache aCache = ACache.get(SheepApp.getInstance());
+        aCache.put(TaskAcceptedEty.class.getSimpleName() + taskAcceptedEty.getId() + "saveTime", String.valueOf(taskAcceptedEty.getEnd_time()));
+    }
+
+    /**
+     * 获取taskAcceptedEty的saveTime缓存时间为
+     *
+     * @param taskAcceptedEty
+     */
+    public long getTaskAcceptedSaveTime(TaskAcceptedEty taskAcceptedEty) {
+        ACache aCache = ACache.get(SheepApp.getInstance());
+        return NumberFormatUtils.parseLong(aCache.getAsString(TaskAcceptedEty.class.getSimpleName() + taskAcceptedEty.getId() + "saveTime"));
+    }
+
+    /**
+     * 获取缓存数据的时间
+     *
+     * @param key
+     * @return
+     */
+    public void clearCache(String key) {
+        ACache aCache = ACache.get(SheepApp.getInstance());
+        aCache.remove(key);
+    }
+    //-----------------------------------------缓存数据部分-----------------------------------------------------结束
+    //-----------------------------------------进行任务部分-----------------------------------------------------开始
+
+    private List<TaskAcceptedEty> tryPlayTaskList = ListUtil.emptyList();//其它视为 试玩任务
+    private List<TaskAcceptedEty> sequentialTaskList = ListUtil.emptyList();//连续任务
+    private List<TaskAcceptedEty> gameTaskList = ListUtil.emptyList();//游戏任务
+    private List<TaskAcceptedEty> allTaskAcceptedTaskList = ListUtil.emptyList();
+
+    //获取缓存数据
+    public void initACacheAcceptedTaskList() {
+        List<TaskAcceptedEty> cacheTaskAcceptedEtyList = getCacheList(ApiKey.new_run_task(3), TaskAcceptedEty.class);
+        if (cacheTaskAcceptedEtyList == null) {//无缓存
+            reInitAcceptedTaskList();
+        } else {//有缓存
+            if (ListUtil.isEmpty(cacheTaskAcceptedEtyList)) {//无任务
+                clearAcceptedTaskList();
+            } else {//有任务
+                reloadAcceptedTaskList(cacheTaskAcceptedEtyList);
+            }
+            EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.ONFRESH_FGT_FAMLLSHEEP));
+        }
+    }
+
+    //刷新数据
+    public void reInitAcceptedTaskList() {
+        reInitAcceptedTaskList(null);
+    }
+
+    //刷新数据
+    public void reInitAcceptedTaskList(final Action1<BaseMessage> action1) {
+        SheepApp.getInstance().getNetComponent().getApiService().returnTask(3, 1)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        reloadAcceptedTaskListAndSaveTime(baseMessage.getDataList(TaskAcceptedEty.class));
+                        AutoTaskListUtil.getInstance().loadList(baseMessage.getDataList(TaskAcceptedEty.class));
+                        EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.ONFRESH_FGT_FAMLLSHEEP));
+                        if (action1 != null)
+                            action1.call(baseMessage);
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        clearAcceptedTaskList();
+                        if (action1 != null)
+                            action1.call(null);
+                    }
+                });
+    }
+
+    public void reloadAcceptedTaskListAndSaveTime(List<TaskAcceptedEty> acceptedTaskList) {
+        setSaveTime(ApiKey.new_run_task(3));
+        clearAcceptedTaskList();
+        for (TaskAcceptedEty taskAcceptedEty : acceptedTaskList) {
+            saveTaskAcceptedSaveTime(taskAcceptedEty);
+            addAcceptedTask(taskAcceptedEty);
+        }
+    }
+
+    public void reloadAcceptedTaskList(List<TaskAcceptedEty> acceptedTaskList) {
+        clearAcceptedTaskList();
+        for (TaskAcceptedEty taskAcceptedEty : acceptedTaskList) {
+            addAcceptedTask(taskAcceptedEty);
+        }
+    }
+
+    public List<TaskAcceptedEty> getAllTaskAcceptedTaskList() {
+        checkTaskList(allTaskAcceptedTaskList);
+        return allTaskAcceptedTaskList;
+    }
+
+    private void clearAcceptedTaskList() {
+        tryPlayTaskList.clear();
+        sequentialTaskList.clear();
+        gameTaskList.clear();
+        allTaskAcceptedTaskList.clear();
+    }
+
+    public void addAcceptedTask(TaskAcceptedEty taskAcceptedEty) {
+        if (taskAcceptedEty != null && taskAcceptedEty.getRelease_task() != null && taskAcceptedEty.getRelease_task().getTask() != null) {
+            switch (taskAcceptedEty.getRelease_task().getTask().getTask_type()) {
+                case 1000://连续任务
+                    ListUtil.addAll(sequentialTaskList, taskAcceptedEty);
+                    break;
+                case 1002:
+                case 1003:
+                case 1004://游戏任务
+                    ListUtil.addAll(gameTaskList, taskAcceptedEty);
+                    break;
+                default://其它视为 试玩任务
+                    ListUtil.addAll(tryPlayTaskList, taskAcceptedEty);
+                    break;
+            }
+            ListUtil.addAll(allTaskAcceptedTaskList, taskAcceptedEty);
+        }
+    }
+
+    //清除并重置正在进行的任务的时间
+    private void checkTaskList(List<TaskAcceptedEty> taskList) {
+        final long saveTime = getSaveTime(ApiKey.new_run_task(3));
+        if (saveTime > 0) {
+            ListUtil.removeItem(taskList, new ListUtil.CallBack<TaskAcceptedEty, Boolean>() {
+                @Override
+                public Boolean call(TaskAcceptedEty taskAcceptedEty) {
+                    if(taskAcceptedEty.getRelease_task() != null && taskAcceptedEty.getRelease_task().getDeadline().equals("永久")){//永久任务
+                        return false;
+                    }
+                    long endTime = getTaskAcceptedSaveTime(taskAcceptedEty);
+                    long newEndTime = endTime - (System.currentTimeMillis() - saveTime) / 1000;
+                    if (newEndTime < 1) {//时间到了,删除该任务
+                        return true;
+                    }
+                    taskAcceptedEty.setEnd_time(newEndTime);//重置时间
+                    return false;
+                }
+            });
+        } else {
+            setSaveTime(ApiKey.new_run_task(3));
+        }
+    }
+
+    public List<TaskAcceptedEty> getTryPlayTaskList() {
+        checkTaskList(tryPlayTaskList);
+        return tryPlayTaskList;
+    }
+
+
+    public List<TaskAcceptedEty> getSequentialTaskList() {
+        checkTaskList(sequentialTaskList);
+        return sequentialTaskList;
+    }
+
+    public List<TaskAcceptedEty> getGameTaskList() {
+        checkTaskList(gameTaskList);
+        return gameTaskList;
+    }
+
+    /**
+     * 通过is_succession来获取对应的正在进行的任务列表
+     * @param is_succession
+     * @return
+     */
+    public List<TaskAcceptedEty> getTaskAcceptedTaskList(int is_succession) {
+        switch (is_succession) {
+            case 1://连续任务
+                return getSequentialTaskList();
+            case 0:
+            default:
+                return getTryPlayTaskList();
+        }
+    }
+
+    /**
+     * 根据releaseTaskId来获取对应的正在进行的任务
+     *
+     * @param releaseTaskId
+     * @return
+     */
+    public TaskAcceptedEty getTaskAcceptedTaskByReleaseTaskId(int releaseTaskId) {
+        List<TaskAcceptedEty> allTaskAcceptedTaskList = getAllTaskAcceptedTaskList();
+        if (allTaskAcceptedTaskList != null) {
+            for (TaskAcceptedEty taskAcceptedEty : allTaskAcceptedTaskList) {
+                if (taskAcceptedEty != null && taskAcceptedEty.getRelease_task() != null && taskAcceptedEty.getRelease_task().getId() == releaseTaskId)
+                    return taskAcceptedEty;
+            }
+        }
+        return null;
+    }
+
+    public TaskAcceptedEty removeAcceptedTask(final int acceptedId) {
+        List<TaskAcceptedEty> removeList = ListUtil.removeItem(allTaskAcceptedTaskList, new ListUtil.CallBack<TaskAcceptedEty, Boolean>() {
+            @Override
+            public Boolean call(TaskAcceptedEty taskAcceptedEty) {
+                return taskAcceptedEty == null || taskAcceptedEty.getId() == acceptedId;
+            }
+        });
+        if (ListUtil.isEmpty(removeList)) {
+            return null;
+        }
+        clearCache(ApiKey.new_run_task(3));
+        return removeList.get(0);
+    }
+
+    //检查发布任务中有没有正在运行的任务,有就去掉
+    public void checkOtherList(final List<TaskAcceptedEty> taskAcceptedEtyList, List<TaskReleaseEty> releaseEtyLists){
+        if(!ListUtil.isEmpty(taskAcceptedEtyList) && !ListUtil.isEmpty(releaseEtyLists)){
+            ListUtil.removeItem(releaseEtyLists, new ListUtil.CallBack<TaskReleaseEty, Boolean>() {
+                @Override
+                public Boolean call(TaskReleaseEty taskReleaseEty) {
+                    for (TaskAcceptedEty taskAcceptedEty : taskAcceptedEtyList) {
+                        if(taskAcceptedEty != null && taskAcceptedEty.getRelease_task() != null && taskAcceptedEty.getRelease_task().equals(taskReleaseEty))
+                            return true;
+                    }
+                    return false;
+                }
+            });
+        }
+    }
+    //-----------------------------------------进行任务部分-----------------------------------------------------结束
+}

+ 25 - 0
app/src/main/java/com/sheep/gamegroup/util/DeviceIDUtil.java

@@ -33,6 +33,7 @@ import java.util.UUID;
  * realicing@sina.com
  */
 public class DeviceIDUtil {
+    private static DeviceIDUtil deviceIDUtil;
 
     /*
      *
@@ -56,6 +57,11 @@ public class DeviceIDUtil {
     private static final String LOACL_FILENAME_KEY = "loacl_filename_key";
 
 
+    public static DeviceIDUtil newInstance(){
+        if (deviceIDUtil == null)
+            deviceIDUtil = new DeviceIDUtil();
+        return deviceIDUtil;
+    }
 
 
     //获取设备唯一id
@@ -399,5 +405,24 @@ public class DeviceIDUtil {
 
     }
 
+    /**
+     * 数字转换成万 千 百 十
+     */
+    public String numberCnvert(int number){
+        int wanWei = number / 10000;
+        int qianWei = number % 10000 /1000;
+        int baiWei = number % 1000 /100;
+        int shiWei = number % 100 /10;
+        int geWei = number % 10 ;
+
+        StringBuffer stringBuffer = new StringBuffer();
+        if(wanWei > 0){
+            stringBuffer.append(wanWei+"万+");
+        }else {
+            stringBuffer.append(number % 10000 +"");
+        }
+
+        return stringBuffer.toString();
+    }
 
 }

+ 51 - 57
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -58,6 +58,7 @@ import com.sheep.gamegroup.view.activity.ActSetting;
 import com.sheep.gamegroup.view.activity.ActUnderstandSheep;
 import com.sheep.gamegroup.view.activity.ActUserLabelList;
 import com.sheep.gamegroup.view.activity.ActWeb;
+import com.sheep.gamegroup.view.activity.ActXiaomiGame;
 import com.sheep.gamegroup.view.activity.ActXinwanWeb;
 import com.sheep.gamegroup.view.activity.AskGetMoneyAct;
 import com.sheep.gamegroup.view.activity.BindOrChangeWeixinAct;
@@ -72,8 +73,8 @@ import com.sheep.gamegroup.view.activity.GameTaskOrderListAct;
 import com.sheep.gamegroup.view.activity.GamemakeMoneyAct;
 import com.sheep.gamegroup.view.activity.LieMakeMoneyAct;
 import com.sheep.gamegroup.view.activity.LoginAct;
-import com.sheep.gamegroup.view.activity.PersonalInfoAct;
 import com.sheep.gamegroup.view.activity.PersonalCenterAct;
+import com.sheep.gamegroup.view.activity.PersonalInfoAct;
 import com.sheep.gamegroup.view.activity.PhoneAct;
 import com.sheep.gamegroup.view.activity.RealNameAuthenAct;
 import com.sheep.gamegroup.view.activity.RechargeAct;
@@ -127,6 +128,7 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_INFO;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_MY_MONEY;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_NEW_VERSION;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_TASK_RECORD;
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.XIAOMI_GAME_LIST;
 
 /**
  * Created by ljy on 2018/3/18.
@@ -160,11 +162,7 @@ public class Jump2View {
      */
     public void tryGoWithdrawal(Context context, UserEntity userEntity){
         if(userEntity == null) {
-            try {
-                userEntity = MyDbManager.getInstance().dbFindUser();
-            } catch (DbException e) {
-                e.printStackTrace();
-            }
+            userEntity = DataUtil.getInstance().getUserEntity();
         }
         if(userEntity == null){
             G.showToast(R.string.loading_data);
@@ -172,7 +170,7 @@ public class Jump2View {
         }
         if(
                 TestUtil.isTestRecharge() ||
-                !isBindWeixin(context)){
+                TextUtils.isEmpty(DataUtil.getInstance().getUserWxOpenId())){//这里认定没有微信id  为   没有绑定微信号
             goNoBindWx(context, ChangeWxOrTelAct.TYPE_RECHARGE);
             return;
         }
@@ -373,13 +371,19 @@ public class Jump2View {
      */
     public void goTryplayView(Context context, Object o){
         Intent intent = new Intent(context, TryMakeMoneyact.class);
-        intent.putExtra("is_succession", o instanceof Integer ? (Integer)o : 0);
+        intent.putExtra("is_succession", 0);
         context.startActivity(intent);
-        if(o == Integer.valueOf(1)){
-            UMConfigUtils.Event.SHEEP_GAME_TASK.onEvent();
-        } else {
-            UMConfigUtils.Event.SHEEP_TASK_TRY.onEvent();
-        }
+        UMConfigUtils.Event.SHEEP_TASK_TRY.onEvent();
+    }
+    /**
+     * 跳到试玩界面
+     * @param context
+     */
+    public void goSequentialTaskView(Context context){
+        Intent intent = new Intent(context, TryMakeMoneyact.class);
+        intent.putExtra("is_succession", 1);
+        context.startActivity(intent);
+        UMConfigUtils.Event.SHEEP_SEQUENTIAL_TASK.onEvent();
     }
 
     /**
@@ -628,35 +632,12 @@ public class Jump2View {
 
 
     /**
-     * 是否绑定微信号
-     */
-    public boolean isBindWeixin(Context context){
-        try{
-//            UserEntity userEntity = MyDbManager.getInstance().dbFindUser();
-//            if(userEntity != null){
-//                if(!TextUtils.isEmpty(userEntity.getWx_openid())){
-//                    return true;
-//                }
-//            }
-            String weix = SpUtils.getWeixin(context);
-            if(!TextUtils.isEmpty(weix)){
-                return true;
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-        return false;
-    }
-
-
-    /**
      * 跳转到个人中心界面
      * @param context
      * @param o
      */
-    public void goPersionInfo(Context context, UserEntity o){
+    public void goPersionInfo(Context context, Object o){
         Intent i = new Intent(context, PersonalInfoAct.class);
-        i.putExtra("info", o);
         context.startActivity(i);
         USER_INFO.onEvent();
     }
@@ -1007,7 +988,7 @@ public class Jump2View {
                                 action1.call(null);
                         } else {
 //                            DialogAgreement.showDialog(activity, agreementList, action1);
-                            Agreement item = ListUtil.getIndex(agreementList, 0);
+                            Agreement item = ListUtil.getItem(agreementList, 0);
                             if(item != null)
                                 goLoadH5(activity, item.getName(), item.getContent());
                         }
@@ -1044,6 +1025,9 @@ public class Jump2View {
     }
 
     public void tryShowNewbieTask(final Activity activity, final UserEntity userEntity, final View newbie_task) {
+        if(userEntity == null){
+            return;
+        }
         if (userEntity.getIs_new() == 2){ //1新用户 2老用户
             newbie_task.setVisibility(View.GONE);
         } else {
@@ -1149,21 +1133,14 @@ public class Jump2View {
      * 重新登录
      */
     public void gotoLoginAgain() {
-        SpUtils.login(SheepApp.mContext,"");
+        SpUtils.saveToken(SheepApp.mContext,"");
+        DataUtil.getInstance().clearData();
         G.showToast("请重新登录");
         ActivityManager.getInstance().finishAllActivity();
         Jump2View.getInstance().goLoginView(SheepApp.mContext, "");
     }
 
     public void gotoGuide(final Activity activity) {
-//        if(BuildConfig.DEBUG){
-//            checkLabel(activity, new Action1<BaseMessage>() {
-//                @Override
-//                public void call(BaseMessage baseMessage) {
-//                    gotoMain(activity);
-//                }
-//            });
-//        } else
         if(SysAppUtil.isNewSmallSheep(false)){
             Intent intent = new Intent(activity, ActGuide.class);
             activity.startActivity(intent);
@@ -1173,7 +1150,7 @@ public class Jump2View {
         }
     }
     public void gotoMain(Activity activity) {
-        String openId = SpUtils.getOpenId(SheepApp.getInstance());
+        String openId = SpUtils.getToken(SheepApp.getInstance());
         if (!TextUtils.isEmpty(openId)) {
             checkOrGoHomePage(activity);
         } else {
@@ -1385,14 +1362,15 @@ public class Jump2View {
         activity.startActivity(intent);
     }
 
-    public void tryShare(Activity activity, String shareUrlKey, String idName, int id) {
+    public void tryShare(final Activity activity, String shareUrlKey, final String idName, final int id) {
         try{
-            Object url_config1 = ACache.get(SheepApp.getInstance()).getAsObject("url_config");
-            if(url_config1 instanceof JSONObject) {
-                String find_share_url = ((JSONObject) url_config1).getString(shareUrlKey);
-                String url = String.format(Locale.CHINA, "%s?authorization=%s&%s=%d&invitation_code=%s", find_share_url, SpUtils.getOpenId(activity), idName, id, MyDbManager.getInstance().dbFindValue());
-                CommonUtil.getInstance().popShare(activity, url, "all");
-            }
+            CommonUtil.getInstance().initUrlConfigByNet(shareUrlKey, new Action1<String>(){
+                @Override
+                public void call(String find_share_url) {
+                    String url = String.format(Locale.CHINA, "%s?authorization=%s&%s=%d&invitation_code=%s", find_share_url, SpUtils.getToken(activity), idName, id, DataUtil.getInstance().getInvitationCode());
+                    CommonUtil.getInstance().popShare(activity, url, "all");
+                }
+            });
         }catch (Exception e){
             e.printStackTrace();
         }
@@ -1419,6 +1397,8 @@ public class Jump2View {
      */
     public void goGameSearch(Activity activity, Object o){
         Intent intent = new Intent(activity, ActSearchGame.class);
+        if(o instanceof Integer)
+            intent.putExtra("where_come", (Integer) o);
         activity.startActivity(intent);
         SEARCH_GAME.onEvent();
     }
@@ -1435,8 +1415,22 @@ public class Jump2View {
      * 幂动科技
      */
     public void goMiDong(Activity activity, Object o){
-        Intent intent = new Intent(activity, ActMiDong.class);
+        if(!SheepApp.getInstance().isShowMidong()){
+            G.showToast("敬请期待");
+            return;
+        }
+        if(SheepApp.getInstance().isInitMidong()){
+            Intent intent = new Intent(activity, ActMiDong.class);
+            activity.startActivity(intent);
+            MI_DONG_VIEW.onEvent();
+        }
+    }
+    /**
+     * 小米游戏列表
+     */
+    public void goXiaomiGameList(Activity activity, Object o){
+        Intent intent = new Intent(activity,ActXiaomiGame.class);
         activity.startActivity(intent);
-        MI_DONG_VIEW.onEvent();
+        XIAOMI_GAME_LIST.onEvent();
     }
 }

+ 4 - 5
app/src/main/java/com/sheep/gamegroup/util/ListUtil.java

@@ -1,8 +1,6 @@
 package com.sheep.gamegroup.util;
 
 
-import com.sheep.gamegroup.model.entity.FindTag;
-
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -20,7 +18,7 @@ public class ListUtil {
         return list == null || list.isEmpty();
     }
 
-    public static <T> T getIndex(List<T> list, int index) {
+    public static <T> T getItem(List<T> list, int index) {
         return hasIndex(list, index) ? list.get(index) : null;
     }
     public static <T> T getLast(List<T> list) {
@@ -89,9 +87,9 @@ public class ListUtil {
         return list;
     }
 
-    public static <T> void removeItem(List<T> list, CallBack<T, Boolean> callBack) {
+    public static <T> List<T> removeItem(List<T> list, CallBack<T, Boolean> callBack) {
         if(isEmpty(list)){
-            return;
+            return null;
         }
         List<T> removeList = emptyList();
         for (T t : list) {
@@ -99,6 +97,7 @@ public class ListUtil {
                 removeList.add(t);
         }
         list.removeAll(removeList);
+        return removeList;
     }
 
     public static interface CallBack<I, R>{

+ 10 - 71
app/src/main/java/com/sheep/gamegroup/util/MyDbManager.java

@@ -24,25 +24,20 @@ import java.util.Locale;
  */
 
 public class MyDbManager {
-    private static MyDbManager myDbManager;
+    private static MyDbManager myDbManager = new MyDbManager();
     private final DbManager db;
 
     private MyDbManager() {
         DbManager.DaoConfig daoConfig = new DbManager.DaoConfig()
                 .setDbName("sheep.db")
-                .setDbVersion(1);
+                .setDbVersion(2);
         db = x.getDb(daoConfig);
     }
 
     public static MyDbManager getInstance(){
-//        if (myDbManager == null){
-//            synchronized (MyDbManager.class){
-//                if(myDbManager == null){
-//                    myDbManager = new MyDbManager();
-//                }
-//            }
-//        }
-        myDbManager = new MyDbManager();
+        if (myDbManager == null){
+            myDbManager = new MyDbManager();
+        }
         return myDbManager;
     }
 
@@ -51,14 +46,13 @@ public class MyDbManager {
      */
     public void saveOrUpdateUser(final UserEntity user) throws DbException {
         if(user != null){
+            DataUtil.getInstance().setUserEntity(user);
             deleteTable(UserEntity.class);//先清空表
             new Handler().postDelayed(new Runnable() {
                 @Override
                 public void run() {
                     try {
                         db.saveOrUpdate(user);
-                        SpUtils.savePhone(SheepApp.mContext, user.getMobile());
-                        SpUtils.saveWeixin(SheepApp.mContext, user.getWx_openid());
                     } catch (Exception e) {
                         e.printStackTrace();
                     }
@@ -70,69 +64,12 @@ public class MyDbManager {
     }
 
     /**
-     * 查找表
-     */
-    public UserEntity dbFindUser() throws DbException{
-        List<UserEntity> users = db.findAll(UserEntity.class);
-        UserEntity userEntity = null;
-        if(users != null && users.size()>0){
-            userEntity = users.get(0);
-        }
-        return userEntity;
-    }
-    /**
-     * Invitation_code
-     */
-    public String dbFindValue(){
-        try {
-            return dbFindUser().getInvitation_code();
-        } catch (DbException e) {
-            e.printStackTrace();
-        }
-        return "";
-    }
-    public String dbFindId(){
-        try {
-            return dbFindUser().getId();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return "";
-    }
-    public String dbFindValueBalance(){
-        try {
-            return dbFindUser().getBalance();
-        } catch (DbException e) {
-            e.printStackTrace();
-        }
-        return "";
-    }
-    public String dbFindValueToken(){
-        try {
-            return dbFindUser().getAccess_token();
-        } catch (DbException e) {
-            e.printStackTrace();
-        }
-        return "";
-    }
-    /**
      * 查找NewbieTaskRecord
      */
     public NewbieTaskRecord dbFindNewbieTaskRecord(String invitation_code) throws DbException{
         return db.findById(NewbieTaskRecord.class, invitation_code);
     }
 
-    /**
-     * 查找指定表
-     */
-    public UserEntity dbFindUsers() throws DbException{
-        UserEntity users = db.findFirst(UserEntity.class);
-        if(users == null ){
-            users = new UserEntity();
-        }
-        return users;
-    }
-
 
     /**
      *保存或更新表表
@@ -227,9 +164,11 @@ public class MyDbManager {
         return null;
     }
 
-    public List<SearchGameRecord> getAllSearchGameRecord() {
+    public List<SearchGameRecord> getAllSearchGameRecord(int type) {
         try{
-            return db.selector(SearchGameRecord.class).findAll();
+            return db.selector(SearchGameRecord.class)
+                    .where("type","=", type)
+                    .findAll();
         }catch (Exception e){
             e.printStackTrace();
         }

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

@@ -5,7 +5,6 @@ import android.webkit.JavascriptInterface;
 
 import com.kfzs.duanduan.KFZSApp;
 import com.kfzs.duanduan.datashare.DDProviderHelper;
-import com.sheep.gamegroup.model.entity.UserEntity;
 
 /**
  * 分享js注入
@@ -26,14 +25,7 @@ public class ShareJs {
 
     @JavascriptInterface
     public String getInvitationCode(){
-        String invitationCode = "";
-        try{
-            UserEntity userEntity = MyDbManager.getInstance().dbFindUser();
-            invitationCode = userEntity.getInvitation_code();
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-        return invitationCode;
+        return DataUtil.getInstance().getInvitationCode();
     }
     @JavascriptInterface
     public String popShare(String url, String type) {

+ 13 - 11
app/src/main/java/com/sheep/gamegroup/util/SysAppUtil.java

@@ -12,6 +12,8 @@ import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.graphics.drawable.Drawable;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
 import android.os.Build;
 import android.provider.AlarmClock;
 import android.provider.Settings;
@@ -47,6 +49,9 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.lang.reflect.Method;
 import java.math.BigDecimal;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.Socket;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
@@ -57,6 +62,7 @@ import java.util.SortedMap;
 import java.util.TreeMap;
 
 import okhttp3.Call;
+import okhttp3.Response;
 import rx.Observable;
 import rx.android.schedulers.AndroidSchedulers;
 import rx.functions.Action1;
@@ -246,17 +252,13 @@ public class SysAppUtil {
                 .map(new Func1<Integer, Integer>() {
                     @Override
                     public Integer call(Integer integer) {
-//                        int result = -1;
-//                        Runtime runtime = Runtime.getRuntime();
-//                        try {
-//                            Process p = runtime.exec("ping -c 1 -w 2 www.baidu.com");//-c 1,表示只发送一个icmp echo_request 包  -w 1 表示等待1s
-//                            result = p.waitFor();
-//                            LogUtil.println("ping", "Process:"+result);
-//                        } catch (Exception e) {
-//                            e.printStackTrace();
-//                        }
-//                        return result;
-                        return 0;
+                        try {
+                            Response response = OkHttpUtils.get().url("http://www.baidu.com").build().execute();
+                            return response.isSuccessful() ? 0 : -1;
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                            return -2;
+                        }
                     }
                 })
                 .subscribeOn(Schedulers.io())

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

@@ -5,7 +5,6 @@ import android.app.DownloadManager;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
-import android.location.Location;
 import android.net.Uri;
 import android.support.v7.app.AlertDialog;
 import android.text.TextUtils;
@@ -15,10 +14,10 @@ import android.view.View;
 import android.widget.ArrayAdapter;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.bumptech.glide.Glide;
 import com.kfzs.duanduan.ActMain;
+import com.kfzs.duanduan.react.ReactUtil;
 import com.kfzs.duanduan.view.DialogStorageLow;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.CreditCard;
@@ -168,7 +167,7 @@ public class TestUtil {
     }
 
     public static void testChange(final Activity activity, TextView test_change) {
-        if (isTest()) {
+        if (isTest() && !ReactUtil.isHasConnectConfig()) {
             test_change.setVisibility(View.VISIBLE);
             test_change.setText(SheepApp.getInstance().getConnectAddress().getName());
             test_change.setOnClickListener(new View.OnClickListener() {
@@ -190,7 +189,7 @@ public class TestUtil {
         }
     }
     public static void testChangeUser(final Activity activity, TextView test_change) {
-        if (isTest()) {
+        if (isTest() && !ReactUtil.isHasConnectConfig()) {
 
             test_change.setVisibility(View.VISIBLE);
             test_change.setText("切换账号");
@@ -209,9 +208,9 @@ public class TestUtil {
 
                                 @Override
                                 public void onClick(DialogInterface dialogInterface, int which) {
-                                    Object object = ListUtil.getIndex(list, which);
+                                    Object object = ListUtil.getItem(list, which);
                                     if(object instanceof LoginUser){
-                                        SpUtils.login(SheepApp.getInstance(), ((LoginUser) object).getToken());
+                                        SpUtils.saveToken(SheepApp.getInstance(), ((LoginUser) object).getToken());
                                         ActivityManager.getInstance().finishAllActivity();
                                         Intent intent = new Intent(SheepApp.getInstance(), ActMain.class);
                                         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@@ -286,7 +285,7 @@ public class TestUtil {
      * @param activity
      */
     public static void test(final Activity activity) {
-        final String[] items = {"复制token","复制imsi","复制打点数据","测试可用金额","测试定位信息","测试apk的渠道","幂动科技","游戏搜索","游戏帐号","游戏代充","尝试开启第三方应用使用情况","测试代理页面","第三方应用使用情况",
+        final String[] items = {"小米游戏","复制token","复制imsi","复制打点数据","测试可用金额","测试定位信息","测试apk的渠道","幂动科技","游戏搜索","游戏帐号","游戏代充","尝试开启第三方应用使用情况","测试代理页面","第三方应用使用情况",
                 "开启第三方应用使用情况","h5跳转","新手对话框","md5","空间不足提示框",
                 "显示已经安装应用列表","复制faq地址","复制代理地址","复制世界杯地址","任务游戏列表","世界杯活动","交通银行信用卡测试",
                 "浦发银行信用卡测试", "测试游戏模块","打卡成功提示","定向货币详情","进入绑定身份认证界面时的提示","提交身份认证时的提示", "检查标签",
@@ -297,6 +296,9 @@ public class TestUtil {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                         switch (items[which]) {
+                            case "小米游戏":
+                                Jump2View.getInstance().goXiaomiGameList(activity, null);
+                                break;
                             case "测试定位信息":
                                 String jsonString = LocationUtils.getInstance().getLocationJSONObject().toJSONString();
                                 G.showToast(jsonString);
@@ -331,11 +333,12 @@ public class TestUtil {
                                 Jump2View.getInstance().goGameSearch(activity, null);
                                 break;
                             case "测试代理页面":
-                                Object url_config1 = ACache.get(SheepApp.getInstance()).getAsObject("url_config");
-                                if(url_config1 instanceof JSONObject) {
-                                    String url = ((JSONObject) url_config1).getString("agenturl");
-                                    Jump2View.getInstance().goWeb(activity, url, "代理服务");
-                                }
+                                CommonUtil.getInstance().initUrlConfigByNet("agenturl", new Action1<String>(){
+                                    @Override
+                                    public void call(String url) {
+                                        Jump2View.getInstance().goWeb(activity, url, "代理服务");
+                                    }
+                                });
                                 break;
                             case "尝试开启第三方应用使用情况":
                                 AppUsageManager.getInstance().tryOpenLookAppUsageStatsPermisson(false);
@@ -364,7 +367,7 @@ public class TestUtil {
                                 showHasInstallApkList(activity);
                                 break;
                             case "复制token":
-                                StringUtils.CopyText(SpUtils.getOpenId(activity));
+                                StringUtils.CopyText(SpUtils.getToken(activity));
                                 break;
                             case "复制imsi":
                                 StringUtils.CopyText(new DeviceUtils(activity).getIMEI());
@@ -457,25 +460,12 @@ public class TestUtil {
 
 
     private static void copyUrl(final String name) {
-        Object url_config1 = ACache.get(SheepApp.getInstance()).getAsObject("url_config");
-        if(url_config1 instanceof JSONObject) {
-            String url;
-            switch (name){
-                case "faqurl":
-                    url = ((JSONObject) url_config1).getString("faqurl");
-                    break;
-                case "agenturl":
-                    url = ((JSONObject) url_config1).getString("agenturl");
-                    break;
-                case "world_cup_url":
-                    url = ((JSONObject) url_config1).getString("world_cup_url");
-                    break;
-                default:
-                    url = ((JSONObject) url_config1).getString("find_share_url");
-                    break;
+        CommonUtil.getInstance().initUrlConfigByNet(name, new Action1<String>(){
+            @Override
+            public void call(String url) {
+                StringUtils.CopyText(ActWeb.addUrlToken(url));
             }
-            StringUtils.CopyText(ActWeb.addUrlToken(url));
-        }
+        });
     }
 
     private static void showHasInstallApkList(Activity activity) {

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

@@ -28,7 +28,6 @@ import rx.schedulers.Schedulers;
 public class UMConfigUtils {
 
     public static final String LOGIN_TYPE = "sheep_login_type";
-    public static final String LOGIN_OPENID = "sheep_login_openid";
 
     //统计点击次数需要的子subtype
     public enum Event {
@@ -152,7 +151,9 @@ public class UMConfigUtils {
         ORDER_MANAGER_CANCEL("订单管理 -> 取消支付"),//5118
         ORDER_MANAGER_PAY("订单管理 -> 立即支付"),//5119
         MI_DONG_VIEW("幂动科技"),//5120
-        SETTING("进入设置界面"),
+        SETTING("进入设置界面"),//5121
+        XIAOMI_GAME_LIST("小米游戏列表"),//5122
+        XIAOMI_GAME_RECEIVE("小米游戏账号领取"),//5123
         ;
         private String tag;
 

+ 12 - 0
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -303,6 +303,14 @@ public class ViewUtil {
     public static AlertDialog showMsgDialog(final Context context, String msg, String title) {
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setBtnLeftText("知道了"));
     }
+    public static AlertDialog showMsgDialog(final Context context, String msg, String title, String leftBtn, String rightBtn,
+                                            View.OnClickListener onClickListener, View.OnClickListener onRightClickListener, View.OnClickListener onCloseClickListener) {
+        return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setBtnLeftText(leftBtn)
+                .setBtnRightText(rightBtn)
+                .setBtnLeftOnClickListener(onClickListener)
+                .setBtnRightOnClickListener(onRightClickListener)
+                .setBtnCloseOnClickListener(onCloseClickListener));
+    }
     public static AlertDialog showMsgDialog(final Context context, String msg, String title,boolean isFinish) {
         return showMsgDialog(context, new DialogConfig().setMsg(msg).setTitle(title).setFinish(isFinish).setBtnLeftText("知道了"));
     }
@@ -317,6 +325,7 @@ public class ViewUtil {
         final View.OnClickListener btnLeftOnClickListener = dialogConfig.getBtnLeftOnClickListener();
         String btnRightText = dialogConfig.getBtnRightText();
         final View.OnClickListener btnRightOnClickListener = dialogConfig.getBtnRightOnClickListener();
+        final View.OnClickListener btnCloseOnClickListener = dialogConfig.getBtnCloseOnClickListener();
         View dialog_parent = View.inflate(mContext, R.layout.dialog_parent, null);
         final AlertDialog dialog = new AlertDialog.Builder(mContext, mContext instanceof Activity ? R.style.MyDialogActivityTheme : R.style.AppTheme_Dialog_Alert).setView(dialog_parent).create();
         TextView dialog_title = dialog_parent.findViewById(R.id.dialog_title);
@@ -414,6 +423,9 @@ public class ViewUtil {
                 dialog_close.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {
+                        if(btnCloseOnClickListener != null){
+                            btnCloseOnClickListener.onClick(v);
+                        }
                         dialog.dismiss();
                     }
                 });

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

@@ -12,12 +12,10 @@ 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.DDProviderHelper;
 import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
 import com.kfzs.duanduan.services.DownloadTaskService;
-import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -32,8 +30,6 @@ import java.io.File;
 
 import okhttp3.Call;
 
-import static com.sheep.jiuyan.samllsheep.utils.ClassFileHelper.DIR;
-
 /**
  * Created by ljy on 2018/6/25.
  */
@@ -114,14 +110,7 @@ public class WebviewJs {
 
     @JavascriptInterface
     public String getInvitationCode(){
-        String invitationCode = "";
-        try{
-            UserEntity userEntity = MyDbManager.getInstance().dbFindUser();
-            invitationCode = userEntity.getInvitation_code();
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-        return invitationCode;
+        return DataUtil.getInstance().getInvitationCode();
     }
     @JavascriptInterface
     public String popShare(String url, String type) {
@@ -130,7 +119,7 @@ public class WebviewJs {
     }
     @JavascriptInterface
     public String getHeader() {
-        return SpUtils.getOpenId(activity);
+        return SpUtils.getToken(activity);
     }
 
     @JavascriptInterface

+ 108 - 67
app/src/main/java/com/sheep/gamegroup/view/activity/ActFindGame.java

@@ -21,6 +21,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.arialyy.annotations.Download;
 import com.arialyy.aria.core.Aria;
 import com.arialyy.aria.core.download.DownloadTask;
+import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.services.DownloadTaskService;
 import com.kfzs.duanduan.utils.StatusBarUtils;
 import com.kfzs.duanduan.utils.dlg.HelperUtils;
@@ -33,6 +34,7 @@ import com.sheep.gamegroup.model.entity.MyFindAppCore;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
@@ -44,6 +46,7 @@ import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
+import org.afinal.simplecache.ApiKey;
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 
@@ -62,6 +65,7 @@ import static android.content.Intent.ACTION_PACKAGE_ADDED;
 import static android.content.Intent.ACTION_PACKAGE_REMOVED;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_SCORE;
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.FIND_SHARE;
+import static com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST;
 
 /**
  * Created by realicing on 2018/5/10.
@@ -197,85 +201,108 @@ public class ActFindGame extends BaseActivity {
 
     @Override
     public void initData() {
-        showProgress();
-        resetData();
-        SheepApp.getInstance().getNetComponent().getApiService().getAppDetail(id)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(this) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        FindApp findApp = baseMessage.getData(FindApp.class);
-                        if (findApp != null) {
-                            loadData(findApp);
-                            if(isShowAppScore) {
-                                initAppScoreNum();
-                                initMyAppScore();
-                            }
-                        } else {
-                            resetData();
+        FindApp findApp = null;
+        if(findApp != null){
+            loadApp(findApp);
+        } else {
+            showProgress();
+            SheepApp.getInstance().getNetComponent().getApiService().getAppDetail(id)
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(this) {
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                            FindApp findApp = baseMessage.getData(FindApp.class);
+                            loadApp(findApp);
+                            hideProgress();
                         }
-                        hideProgress();
-                    }
 
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage);
-                        resetData();
-                        hideProgress();
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                            G.showToast(baseMessage);
+                            resetData();
+                            hideProgress();
+                        }
+                    });
+        }
+        UserEntity userEntity = DataUtil.getInstance().getUserEntity();
+        if(userEntity == null) {
+            CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
+                @Override
+                public void call(UserEntity userEntity) {
+                    if (userEntity != null) {
+                        loadUserInfo(userEntity);
+                    } else {
+                        resetUserInfo();
                     }
-                });
-        CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
-            @Override
-            public void call(UserEntity userEntity) {
-                if (userEntity != null) {
-                    loadUserInfo(userEntity);
-                } else {
-                    resetUserInfo();
                 }
+            });
+        } else {
+            loadUserInfo(userEntity);
+        }
+    }
+
+    private void loadApp(FindApp findApp) {
+        if (findApp != null) {
+            loadData(findApp);
+            if(isShowAppScore) {
+                initAppScoreNum();
+                initMyAppScore();
             }
-        });
+        } else {
+            resetData();
+        }
     }
 
     private void initAppScoreNum() {
-        SheepApp.getInstance().getNetComponent().getApiService().getAppScoreNum(id)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        List<FindAppScore> findAppScoreList = baseMessage.getDataList(FindAppScore.class);
-                        if (ListUtil.isEmpty(findAppScoreList))
-                            resetAppScoreNum();
-                        else
-                            loadAppScoreNum(findAppScoreList);
-                    }
+        List<FindAppScore> findAppScoreList = DataUtil.getInstance().getCacheList(ApiKey.score_num(id), FindAppScore.class);
+        if (findAppScoreList == null) {
+            SheepApp.getInstance().getNetComponent().getApiService().getAppScoreNum(id)
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                            List<FindAppScore> findAppScoreList = baseMessage.getDataList(FindAppScore.class);
+                            if (ListUtil.isEmpty(findAppScoreList))
+                                resetAppScoreNum();
+                            else
+                                loadAppScoreNum(findAppScoreList);
+                        }
 
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage);
-                    }
-                });
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                            G.showToast(baseMessage);
+                        }
+                    });
+        } else if(!findAppScoreList.isEmpty()) {
+            loadAppScoreNum(findAppScoreList);
+        }
     }
-
     private void initMyAppScore() {
-        SheepApp.getInstance().getNetComponent().getApiService().getMyAppScore(id)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        MyFindAppCore myFindAppCore = baseMessage.getData(MyFindAppCore.class);
-                        if (myFindAppCore == null)
-                            resetMyAppScore();
-                        else
-                            loadMyAppScore(myFindAppCore);
-                    }
+        MyFindAppCore myFindAppCore = DataUtil.getInstance().getCacheResult(ApiKey.my_score(id), MyFindAppCore.class);
+        if (myFindAppCore == null) {
+            SheepApp.getInstance().getNetComponent().getApiService().getMyAppScore(id)
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                            MyFindAppCore myFindAppCore = baseMessage.getData(MyFindAppCore.class);
+                            if (myFindAppCore == null)
+                                resetMyAppScore();
+                            else
+                                loadMyAppScore(myFindAppCore);
+                        }
 
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                    }
-                });
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                            resetMyAppScore();
+                        }
+                    });
+        } else {
+            loadMyAppScore(myFindAppCore);
+        }
     }
 
     @BindView(R.id.find_game_iv)
@@ -501,6 +528,11 @@ public class ActFindGame extends BaseActivity {
 
     //更新按钮状态与添加点击事件
     private void updateView(Activity activity, FindApp findApp, TextView textView) {
+        if(findApp.getAvailable_receive() == 0 && findApp.getReceive_account() == 0){//未领取账号
+
+            CommonUtil.getInstance()
+                    .xiaomiRevieceAcctoun(find_game_down_tv, findApp, activity);
+        }else
         if (findApp.isCanDonload()) {//可下载
             downLoadTextViewMap.put(findApp.getDownload_link(), textView);
             downLoadTextViewMap.put(findApp.getPackage_name(), textView);
@@ -622,6 +654,15 @@ public class ActFindGame extends BaseActivity {
         }
     }
 
+    @Subscribe
+    public void onEventMainThread(BigEvent event) {
+        switch (event.getEventTypes()){
+            case REFRESH_XIAOMI_GAME_LIST:
+                initData();
+                break;
+        }
+    }
+
     @Override
     protected void onDestroy() {
         super.onDestroy();

+ 65 - 47
app/src/main/java/com/sheep/gamegroup/view/activity/ActFindInformation.java

@@ -24,6 +24,7 @@ import com.sheep.gamegroup.model.entity.FindApp;
 import com.sheep.gamegroup.model.entity.FindItem;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
@@ -40,6 +41,7 @@ import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
+import org.afinal.simplecache.ApiKey;
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 
@@ -212,57 +214,73 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
                 }
             }
         });
-        SheepApp.getInstance().getNetComponent().getApiService().getFindDetail(id)
-                        .subscribeOn(Schedulers.io())
-                        .observeOn(AndroidSchedulers.mainThread())
-                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                            @Override
-                            public void onNext(BaseMessage baseMessage) {
-                                FindItem data = baseMessage.getData(FindItem.class);
-                                if(data != null && !TextUtils.equals(JSON.toJSONString(findItem), JSON.toJSONString(data))){
-                                    taskHelper.clear();
-                                    findItem = data;
-                                    list.clear();
-                                    list.add("top");
-                                    list.add("bottom");
-                                    notifyDataSetChanged();
-                                    if(findItem.getRelease_task_id() != 0){//包含任务
-                                        taskHelper.initAcceptedTask(ActFindInformation.this, findItem.getRelease_task_id());
-                                    }
-                                    if(findItem.getApplication_id() != 0){//包含游戏
-                                        initFindApp(findItem.getApplication_id());
-                                    }
-                                } else {
-                                    refresh.setRefreshing(false);
-                                }
-                            }
-
-                            @Override
-                            public void onError(BaseMessage baseMessage) {
-                                taskHelper.clear();
-                                notifyDataSetChanged();
-                            }
-                        });
+        FindItem data = DataUtil.getInstance().getCacheResult(ApiKey.articlesItem(id), FindItem.class);
+        if(data == null){
+            SheepApp.getInstance().getNetComponent().getApiService().getFindDetail(id)
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                            FindItem data = baseMessage.getData(FindItem.class);
+                            loadFindItem(data);
+                        }
+
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                            taskHelper.clear();
+                            notifyDataSetChanged();
+                        }
+                    });
+        } else {
+            loadFindItem(data);
+        }
+    }
+
+    private void loadFindItem(FindItem data) {
+        if(data != null && !TextUtils.equals(JSON.toJSONString(findItem), JSON.toJSONString(data))){
+            taskHelper.clear();
+            findItem = data;
+            list.clear();
+            list.add("top");
+            list.add("bottom");
+            notifyDataSetChanged();
+            if(findItem.getRelease_task_id() != 0){//包含任务
+                taskHelper.initAcceptedTask(ActFindInformation.this, findItem.getRelease_task_id());
+            }
+            if(findItem.getApplication_id() != 0){//包含游戏
+                initFindApp(findItem.getApplication_id());
+            }
+        } else {
+            refresh.setRefreshing(false);
+        }
     }
 
     private FindApp findApp;
     private void initFindApp(int application_id) {
-        SheepApp.getInstance().getNetComponent().getApiService().getAppDetail(application_id)
-                        .subscribeOn(Schedulers.io())
-                        .observeOn(AndroidSchedulers.mainThread())
-                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                            @Override
-                            public void onNext(BaseMessage baseMessage) {
-                                findApp = baseMessage.getData(FindApp.class);
-                                notifyDataSetChanged();
-                            }
-
-                            @Override
-                            public void onError(BaseMessage baseMessage) {
-                                G.showToast(baseMessage);
-                                refresh.setRefreshing(false);
-                            }
-                        });
+
+        FindApp cacheResult = DataUtil.getInstance().getCacheResult(ApiKey.applications(id), FindApp.class);
+        if(cacheResult != null){
+            findApp = cacheResult;
+            notifyDataSetChanged();
+        } else {
+            SheepApp.getInstance().getNetComponent().getApiService().getAppDetail(application_id)
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                            findApp = baseMessage.getData(FindApp.class);
+                            notifyDataSetChanged();
+                        }
+
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                            G.showToast(baseMessage);
+                            refresh.setRefreshing(false);
+                        }
+                    });
+        }
     }
 
     private FindItem findItem;

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

@@ -1,13 +1,9 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.app.Activity;
-import android.content.Context;
 import android.os.Bundle;
 import android.support.design.widget.TabLayout;
 import android.support.v4.view.ViewPager;
-import android.view.View;
-import android.widget.LinearLayout;
-import android.widget.TextView;
 
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
@@ -22,14 +18,12 @@ import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 import org.afinal.simplecache.ACache;
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 
-import java.lang.reflect.Field;
 import java.util.List;
 import java.util.Locale;
 
@@ -159,7 +153,7 @@ public class ActMiDong extends BaseActivity {
     public void onEventMainThread(BigEvent event){
         switch (event.getEventTypes()){
             case REFRESH_MING_DONG:
-                FgtMiDong item = ListUtil.getIndex(fgtMiDongList, curPosition);
+                FgtMiDong item = ListUtil.getItem(fgtMiDongList, curPosition);
                 if(item != null){
                     item.refreshData();
                 }

+ 132 - 85
app/src/main/java/com/sheep/gamegroup/view/activity/ActSearchGame.java

@@ -1,5 +1,9 @@
 package com.sheep.gamegroup.view.activity;
 
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.content.Intent;
+import android.net.Uri;
 import android.support.v7.widget.AppCompatAutoCompleteTextView;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
@@ -17,8 +21,10 @@ import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.arialyy.aria.core.download.DownloadTask;
 import com.kfzs.duanduan.event.BigEvent;
+import com.kfzs.duanduan.event.EventTypes;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.RecyleObj;
@@ -39,12 +45,14 @@ import com.sheep.gamegroup.view.adapter.ArrayAdapter;
 import com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
@@ -56,6 +64,7 @@ import rx.functions.Action1;
 import rx.schedulers.Schedulers;
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.SEARCH_GAME_COMMIT;
+import static com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST;
 
 /**
  * Created by realicing on 2018/04/.
@@ -76,6 +85,8 @@ public class ActSearchGame extends BaseActivity {
     @BindView(R.id.download_mgr_empty_view)
     View download_mgr_empty_view;
 
+    private int type;//1:小米游戏过来
+
     @Override
     protected int getLayoutId() {
         return R.layout.act_search_game;
@@ -85,6 +96,7 @@ public class ActSearchGame extends BaseActivity {
 
     @Override
     public void initView() {
+        type = getIntent().getIntExtra("where_come", 0);
         EventBus.getDefault().register(this);
         activity = this;
         TitleBarUtils.getInstance()
@@ -115,10 +127,10 @@ public class ActSearchGame extends BaseActivity {
 //        search_game_input.setThreshold(1);
     }
 
-    private AdbCommonRecycler<TaskReleaseEty> adapter;
+    private AdbCommonRecycler<Object> adapter;
     private void initList() {
         search_game_list.setLayoutManager(new LinearLayoutManager(activity));
-        adapter = new AdbCommonRecycler<TaskReleaseEty>(activity, list) {
+        adapter = new AdbCommonRecycler<Object>(activity, list) {
 
             @Override
             public int getViewIdByType(int type) {
@@ -126,12 +138,10 @@ public class ActSearchGame extends BaseActivity {
             }
 
             @Override
-            public void convert(ViewHolder holder, final TaskReleaseEty item) {
+            public void convert(ViewHolder holder, final Object item) {
                 View itemView = holder.itemView;
-                final TaskEty taskEty;
-                if (item == null || (taskEty = item.getTask()) == null) {
+                if(item == null)
                     return;
-                }
                 ImageView find_information_game_icon = (ImageView) itemView.findViewById(R.id.find_information_game_icon);
                 TextView find_information_game_name = (TextView) itemView.findViewById(R.id.find_information_game_name);
                 TextView find_information_game_surplus = (TextView) itemView.findViewById(R.id.find_information_game_surplus);
@@ -139,21 +149,49 @@ public class ActSearchGame extends BaseActivity {
                 TextView find_information_game_yuan = (TextView) itemView.findViewById(R.id.find_information_game_yuan);
                 TextView find_information_game_task_bottom = (TextView) itemView.findViewById(R.id.find_information_game_task_bottom);
                 TextView find_information_game_task_top = (TextView) itemView.findViewById(R.id.find_information_game_task_top);
-                ViewUtil.centerImage(find_information_game_icon, taskEty.getIcon());
-                ViewUtil.setText(find_information_game_name, item.getName());
-                ViewUtil.setText(find_information_game_surplus);
-                ViewUtil.setText(find_information_game_time, taskEty.getDetailShow());
-                find_information_game_yuan.setVisibility(View.INVISIBLE);//这里必须为INVISIBLE,因为要显示两个按钮,下面的按钮位置不动
-                find_information_game_task_top.setVisibility(View.VISIBLE);
-                find_information_game_task_top.setText("立即充值");
-                find_information_game_task_top.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                        ViewUtil.showGamePayAccount(activity, taskEty.getThird_task_id(), item.getName());
+                TextView find_information_game_task_center = (TextView) itemView.findViewById(R.id.find_information_game_task_center);
+
+                if(item instanceof TaskReleaseEty){
+                    final TaskReleaseEty  items = (TaskReleaseEty) item;
+                    final TaskEty taskEty;
+                    if ((taskEty = items.getTask()) == null) {
+                        return;
                     }
-                });
-                item.getDownloadHelper().updateDownloadTaskView(activity, taskEty, find_information_game_task_bottom);
-                find_information_game_task_bottom.setTag("PUBLIC_TAG_PREFIX_TEXTVIEW_LIST" + taskEty.getDownload_link());
+                    ViewUtil.centerImage(find_information_game_icon, taskEty.getIcon());
+                    ViewUtil.setText(find_information_game_name, items.getName());
+                    ViewUtil.setText(find_information_game_surplus);
+                    ViewUtil.setText(find_information_game_time, taskEty.getDetailShow());
+                    find_information_game_yuan.setVisibility(View.INVISIBLE);//这里必须为INVISIBLE,因为要显示两个按钮,下面的按钮位置不动
+                    find_information_game_task_top.setVisibility(View.VISIBLE);
+                    find_information_game_task_top.setText("立即充值");
+                    find_information_game_task_top.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View view) {
+                            ViewUtil.showGamePayAccount(activity, taskEty.getThird_task_id(), items.getName());
+                        }
+                    });
+                    items.getDownloadHelper().updateDownloadTaskView(activity, taskEty, find_information_game_task_bottom);
+                    find_information_game_task_bottom.setTag("PUBLIC_TAG_PREFIX_TEXTVIEW_LIST" + taskEty.getDownload_link());
+                }else if(item instanceof XiaomiGameEntity){
+                    final XiaomiGameEntity  items = (XiaomiGameEntity) item;
+                    ViewUtil.centerImage(find_information_game_icon, items.getIcon());
+                    ViewUtil.setText(find_information_game_name, items.getName());
+                    ViewUtil.setText(find_information_game_surplus);
+                    ViewUtil.setText(find_information_game_time, "");
+                    find_information_game_yuan.setVisibility(View.GONE);//这里必须为INVISIBLE,因为要显示两个按钮,下面的按钮位置不动
+                    find_information_game_task_top.setVisibility(View.GONE);
+                    find_information_game_task_bottom.setVisibility(View.GONE);
+                    find_information_game_task_center.setVisibility(View.VISIBLE);
+                    if(items.getAvailable_receive() == 0 && items.getReceive_account() == 0){//未领取账号
+                        CommonUtil.getInstance()
+                                .xiaomiRevieceAcctoun(find_information_game_task_center, items, activity);
+                    }else {
+                        items.getDownloadHelper().updateDownloadTaskView((Activity) activity, items, find_information_game_task_center);
+                        find_information_game_task_center.setTag(PUBLIC_TAG_PREFIX_TEXTVIEW_LIST + items.getDownload_url());
+                    }
+                }
+
+
             }
         };
         search_game_list.setAdapter(adapter);
@@ -223,37 +261,42 @@ public class ActSearchGame extends BaseActivity {
 
     List<SearchGameRecord> searchGameRecordList = new ArrayList<>();
     List<TaskReleaseEty> hotList = new ArrayList<>();
-    List<TaskReleaseEty> list = new ArrayList<>();
+    List<Object> list = new ArrayList<>();
 
     @Override
     public void initData() {
         //初始化搜索历史
-        List<SearchGameRecord> newSgrList = MyDbManager.getInstance().getAllSearchGameRecord();
+        List<SearchGameRecord> newSgrList = MyDbManager.getInstance().getAllSearchGameRecord(type);
         ListUtil.addAll(searchGameRecordList, newSgrList);
         inputAdapter.notifyDataSetChanged();
-        //初始化热门列表
-        SheepApp.getInstance().getNetComponent().getApiService()
-                .releaseTask(1, 9,
-                        SheepApp.getInstance().getConnectAddress().getPlatForm(), 1,
-                        0, 0,
-                        "1002,1003,1004", 3)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        CommonUtil.getInstance().updateEmptyView(download_mgr_empty_view, true);
-                        search_game_hot.setVisibility(View.GONE);
-                        search_game_list.setVisibility(View.GONE);
-                    }
+        if(type == 1){
+            search_game_hot.setVisibility(View.GONE);
+        }else {
+            //初始化热门列表
+            SheepApp.getInstance().getNetComponent().getApiService()
+                    .releaseTask(1, 9,
+                            SheepApp.getInstance().getConnectAddress().getPlatForm(), 1,
+                            0, 0,
+                            "1002,1003,1004", 3)
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                            CommonUtil.getInstance().updateEmptyView(download_mgr_empty_view, true);
+                            search_game_hot.setVisibility(View.GONE);
+                            search_game_list.setVisibility(View.GONE);
+                        }
+
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                            List<TaskReleaseEty> newList = baseMessage.getDatas(TaskReleaseEty.class);
+                            ListUtil.addAll(hotList, newList);
+                            hotAdapter.notifyDataSetChanged();
+                        }
+                    });
+        }
 
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        List<TaskReleaseEty> newList = baseMessage.getDatas(TaskReleaseEty.class);
-                        ListUtil.addAll(hotList, newList);
-                        hotAdapter.notifyDataSetChanged();
-                    }
-                });
 
     }
 
@@ -278,6 +321,7 @@ public class ActSearchGame extends BaseActivity {
         SearchGameRecord searchGameRecord = new SearchGameRecord();
         searchGameRecord.setInput(inputText);
         searchGameRecord.setTime(System.currentTimeMillis());
+        searchGameRecord.setType(type);
         MyDbManager.getInstance().saveOrUpdate(searchGameRecord);
         searchGameRecordList.add(searchGameRecord);
 //        initInput();
@@ -287,27 +331,51 @@ public class ActSearchGame extends BaseActivity {
             return;
         }
 
-        CommonUtil.getInstance()
-                .gameTask(activity, "1002,1003,1004", inputText, new Action1<BaseMessage>() {
-                    @Override
-                    public void call(BaseMessage baseMessage) {
-                        try {
-                            if(baseMessage == null){
-
-                                G.showToast("暂无游戏");
-                                list.clear();
-                                notifyDataSetChanged();
-                            }else {
-                                List<TaskReleaseEty> newList = baseMessage.getDatas(TaskReleaseEty.class);
-                                list.clear();
-                                ListUtil.addAll(list, newList);
-                                notifyDataSetChanged();
+        if(type == 1){
+            CommonUtil.getInstance()
+                    .xiaomiGame(activity,1, 100, inputText, new Action1<BaseMessage>() {
+                        @Override
+                        public void call(BaseMessage baseMessage) {
+                            try {
+                                if(baseMessage == null){
+
+                                    G.showToast("暂无游戏");
+                                    list.clear();
+                                    notifyDataSetChanged();
+                                }else {
+                                    List<XiaomiGameEntity> newList = baseMessage.getDatas(XiaomiGameEntity.class);
+                                    list.clear();
+                                    ListUtil.addAll(list, newList);
+                                    notifyDataSetChanged();
+                                }
+                            } catch (Exception e) {
+                                e.printStackTrace();
                             }
-                        } catch (Exception e) {
-                            e.printStackTrace();
                         }
-                    }
-                });
+                    });
+        }else {
+            CommonUtil.getInstance()
+                    .gameTask(activity, "1002,1003,1004", inputText, new Action1<BaseMessage>() {
+                        @Override
+                        public void call(BaseMessage baseMessage) {
+                            try {
+                                if(baseMessage == null){
+
+                                    G.showToast("暂无游戏");
+                                    list.clear();
+                                    notifyDataSetChanged();
+                                }else {
+                                    List<TaskReleaseEty> newList = baseMessage.getDatas(TaskReleaseEty.class);
+                                    list.clear();
+                                    ListUtil.addAll(list, newList);
+                                    notifyDataSetChanged();
+                                }
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    });
+        }
     }
 
     private void notifyDataSetChanged() {
@@ -331,28 +399,7 @@ public class ActSearchGame extends BaseActivity {
 
     @Subscribe
     public void onEventMainThread(BigEvent event){
-        switch (event.getEventTypes()){
-
-            case GENERATION_ACCOUNT_REFRESH_ADAPTER:
-                if(event.getData() instanceof DownloadTask){
-                    DownloadTask task = (DownloadTask) event.getData();
-                    try {
-                        int p = task.getPercent();    //任务进度百分比
-                        String speed = task.getConvertSpeed();    //转换单位后的下载速度,单位转换需要在配置文件中打开
-                        System.out.println("Aria "+task.getKey()+",p " + p + ", speed = " + speed);
-                        String url = task.getKey();
-                        TextView tvProgress = search_game_list.findViewWithTag(TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST + url);
-                        if (tvProgress == null) {
-                            return;
-                        }
-                        tvProgress.setText(String.format(Locale.CHINA, "%d%%",Math.abs(p)));
-
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                }
-                break;
-        }
+        CommonUtil.getInstance().setEventResultViewStatus(event, search_game_list);
     }
 
     @Override

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

@@ -6,7 +6,6 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.kfzs.android.view.tag.FlowLayout;
 import com.kfzs.android.view.tag.TagAdapter;
@@ -115,7 +114,7 @@ public class ActUserLabelList extends BaseActivity {
                     tagList.setOnTagClickListener(new TagFlowLayout.OnTagClickListener() {
                         @Override
                         public boolean onTagClick(View view, int position, FlowLayout parent) {
-                            UserLabel userLabel = ListUtil.getIndex(userLabelList.getLabels(), position);
+                            UserLabel userLabel = ListUtil.getItem(userLabelList.getLabels(), position);
                             if(userLabel != null) {
                                 userLabel.setChecked(!userLabel.isChecked());
                                 return true;

+ 5 - 17
app/src/main/java/com/sheep/gamegroup/view/activity/ActWeb.java

@@ -3,7 +3,6 @@ package com.sheep.gamegroup.view.activity;
 import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.content.Intent;
-import android.graphics.Bitmap;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
@@ -15,19 +14,15 @@ import android.view.View;
 import android.webkit.JavascriptInterface;
 import android.webkit.ValueCallback;
 import android.webkit.WebChromeClient;
-import android.webkit.WebResourceRequest;
-import android.webkit.WebResourceResponse;
 import android.webkit.WebSettings;
 import android.webkit.WebView;
 import android.webkit.WebViewClient;
-import android.widget.TextView;
 
 import com.kfzs.duanduan.BaseCompatActivity;
-import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.LogUtil;
-import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -165,7 +160,7 @@ public class ActWeb extends BaseCompatActivity {
                         .setPhotoCount(1)
                         .setShowCamera(true)
                         .setShowGif(false)
-                        .setPreviewEnabled(false)
+                        .setPreviewEnabled(true)
                         .start(ActWeb.this, PhotoPicker.REQUEST_CODE);*/
                 Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                 if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
@@ -270,7 +265,7 @@ public class ActWeb extends BaseCompatActivity {
     }
 
     public static String addUrlToken(String url) {
-        return addUrl(url, "authorization", SpUtils.getOpenId(SheepApp.getInstance()));
+        return addUrl(url, "authorization", SpUtils.getToken(SheepApp.getInstance()));
     }
 
     public static String addUrl(String url, String key, String value) {
@@ -345,14 +340,7 @@ public class ActWeb extends BaseCompatActivity {
 
         @JavascriptInterface
         public String getInvitationCode(){
-            String invitationCode = "";
-            try{
-                UserEntity userEntity = MyDbManager.getInstance().dbFindUser();
-                invitationCode = userEntity.getInvitation_code();
-            }catch (Exception e){
-                e.printStackTrace();
-            }
-            return invitationCode;
+            return DataUtil.getInstance().getInvitationCode();
         }
         @JavascriptInterface
         public String popShare(String url, String type) {
@@ -361,7 +349,7 @@ public class ActWeb extends BaseCompatActivity {
         }
         @JavascriptInterface
         public String getHeader() {
-            return SpUtils.getOpenId(ActWeb.this);
+            return SpUtils.getToken(ActWeb.this);
         }
 
         @JavascriptInterface

+ 283 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/ActXiaomiGame.java

@@ -0,0 +1,283 @@
+package com.sheep.gamegroup.view.activity;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v4.widget.SwipeRefreshLayout;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.alibaba.fastjson.JSONObject;
+import com.arialyy.aria.core.Aria;
+import com.arialyy.aria.core.download.DownloadTask;
+import com.kfzs.android.view.tag.FlowLayout;
+import com.kfzs.android.view.tag.TagAdapter;
+import com.kfzs.android.view.tag.TagFlowLayout;
+import com.kfzs.duanduan.event.BigEvent;
+import com.kfzs.duanduan.event.EventTypes;
+import com.mdad.sdk.mdsdk.AdManager;
+import com.mdad.sdk.mdsdk.GetAdListListener;
+import com.mdad.sdk.mdsdk.common.AdData;
+import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.model.entity.AdDataSon;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+import com.sheep.gamegroup.model.entity.FindApp;
+import com.sheep.gamegroup.model.entity.FindItem;
+import com.sheep.gamegroup.model.entity.FindTag;
+import com.sheep.gamegroup.model.entity.TaskReleaseEty;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DeviceIDUtil;
+import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.Jump2View;
+import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.SheepSwipeRefreshLayout;
+import com.sheep.gamegroup.util.SysAppUtil;
+import com.sheep.gamegroup.util.ViewHolder;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
+import com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
+import com.sheep.jiuyan.samllsheep.utils.G;
+import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+
+import java.io.File;
+import java.util.List;
+import java.util.Locale;
+
+import butterknife.BindView;
+import rx.android.schedulers.AndroidSchedulers;
+import rx.functions.Action1;
+import rx.schedulers.Schedulers;
+
+import static com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp.PUBLIC_TAG_PREFIX_TEXTVIEW_LIST;
+
+
+/**
+ * Created by ljy on 2018/7/29.
+ */
+
+public class ActXiaomiGame extends BaseActivity {
+
+    @BindView(R.id.title)
+    View title;
+    @BindView(R.id.refresh)
+    SwipeRefreshLayout refresh;
+    @BindView(R.id.empty_view)
+    View empty_view;
+    @BindView(R.id.check_net_ll)
+    View check_net_ll;
+    @BindView(R.id.view_list)
+    RecyclerView view_list;
+
+    private Activity activity;
+    private List<XiaomiGameEntity> list = ListUtil.emptyList();
+    private boolean isRefresh;
+    private int page;
+    private int per_page = 20;
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.net_empty_fresh_list_more;
+    }
+
+    @Override
+    public void initView() {
+        activity = this;
+        EventBus.getDefault().register(this);
+        Aria.download(this).register();
+
+        TitleBarUtils.getInstance()
+                .setTitleFinish(activity)
+                .setTitle(activity, "小米游戏中心")
+                .setRightImgBotton(activity,
+                        R.mipmap.search_black_img,
+                        new View.OnClickListener() {//搜索
+                            @Override
+                            public void onClick(View v) {
+                                Jump2View.getInstance().goGameSearch(activity, 1);
+                            }
+                        });
+        refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
+            @Override
+            public void onRefresh() {
+                isRefresh = true;
+                initData();
+                refresh.setRefreshing(false);
+            }
+        });
+
+        view_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
+        view_list.setAdapter(new AdbCommonRecycler<XiaomiGameEntity>(SheepApp.getInstance(), list){
+
+            @Override
+            public int getItemViewType(int position) {
+                return position;
+            }
+            @Override
+            public int getViewIdByType(int type) {//type来源于 getItemViewType 返回的值
+//                if(type == -1 + list.size()){
+//                    return R.layout.find_item_bottom;
+//                }
+                return R.layout.try_makemoney_item_recommend;
+            }
+
+            @Override
+            public void convert(ViewHolder holder, final XiaomiGameEntity item) {
+                if(item == null){
+                    return;
+                }
+                View rootConvertView = holder.itemView;
+                View task_top = rootConvertView.findViewById(R.id.task_top);
+                task_top.setVisibility(View.GONE);
+                TextView item_money = (TextView)rootConvertView.findViewById(R.id.item_money);
+                TextView item_name_tv = (TextView)rootConvertView.findViewById(R.id.item_name_tv);
+                TextView item_num_tv = (TextView)rootConvertView.findViewById(R.id.item_num_tv);
+                TextView item_date_tv = (TextView)rootConvertView.findViewById(R.id.item_date_tv);
+                TextView detail_task_tv_center = (TextView)rootConvertView.findViewById(R.id.detail_task_tv_center);
+                item_money.setVisibility(View.GONE);
+                View line_tv = rootConvertView.findViewById(R.id.line_tv);
+                View detail_task_layout = rootConvertView.findViewById(R.id.detail_task_layout);
+                detail_task_layout.setVisibility(View.GONE);
+
+                GlideImageLoader.setGameImage((ImageView) rootConvertView.findViewById(R.id.item_icon_iv), item.getIcon());
+                item_name_tv.setText(item.getName()+"");
+                item_num_tv.setText(item.getType()+"");
+                item_date_tv.setText(DeviceIDUtil.newInstance().numberCnvert(item.getDownload_count_increment())+"人在玩");
+                detail_task_tv_center.setTag(PUBLIC_TAG_PREFIX_TEXTVIEW_LIST + item.getDownload_url());
+                detail_task_tv_center.setVisibility(View.VISIBLE);
+
+                if(item.getAvailable_receive() == 0 && item.getReceive_account() == 0){//未领取账号
+
+                    CommonUtil.getInstance()
+                            .xiaomiRevieceAcctoun(detail_task_tv_center, item, activity);
+                }else {
+                    item.getDownloadHelper().updateDownloadTaskView((Activity) activity, item, detail_task_tv_center);
+                    detail_task_tv_center.setTag(PUBLIC_TAG_PREFIX_TEXTVIEW_LIST + item.getDownload_url());
+                }
+                rootConvertView.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+
+                        Jump2View.getInstance().goFindGame(activity, item.getId());
+                    }
+                });
+            }
+        });
+        isRefresh = false;
+    }
+
+    @Override
+    public void initListener() {
+
+        view_list.addOnScrollListener(new RecyclerView.OnScrollListener() {
+            @Override
+            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
+                super.onScrollStateChanged(recyclerView, newState);
+                if (newState == RecyclerView.SCROLL_STATE_IDLE) {//滑动到了底部
+                    if (list.size() >= page * per_page) {
+                        loadData(true, false);
+                    } else {
+//                        G.showToast("没有更多数据了");
+                    }
+
+                }
+            }
+        });
+    }
+
+    @Override
+    public void initData() {
+        SysAppUtil.checkNet(new Action1<Integer>() {
+            @Override
+            public void call(Integer result) {
+                if (result != 0) {//无网络
+                    if (check_net_ll != null)
+                        check_net_ll.setVisibility(View.VISIBLE);
+                } else {
+                    if (check_net_ll != null)
+                        check_net_ll.setVisibility(View.GONE);
+                }
+            }
+        });
+
+        try{
+            loadData(false, isRefresh);
+        }catch (Exception e){
+            e.printStackTrace();
+            new Handler().postDelayed(new Runnable() {
+                @Override
+                public void run() {
+                    loadData(false, isRefresh);
+                }
+            }, 500);
+        }
+
+
+    }
+
+    private void loadData(boolean isLoadMore, final boolean isRefresh){
+        /**
+         * 异步获取普通任务,回调是在主线程,可以直接更新UI,加载更多的逻辑只需更新pageNo和pageSize即可。
+         */
+        if (isLoadMore)
+            page++;
+        else
+            page = 1;
+
+        CommonUtil.getInstance()
+                .xiaomiGame(activity,page, per_page, "", new Action1<BaseMessage>() {
+                    @Override
+                    public void call(BaseMessage baseMessage) {
+                        try {
+                            if(baseMessage == null){
+
+                                CommonUtil.getInstance().updateEmptyView(empty_view, true);
+                                G.showToast("暂无游戏");
+                            }else {
+                                List<XiaomiGameEntity> newList = baseMessage.getDatas(XiaomiGameEntity.class);
+
+                                if (page == 1)
+                                    list.clear();
+                                CommonUtil.getInstance().updateEmptyView(empty_view, ListUtil.addAll(list, newList) == 0?true:false);
+                                view_list.getAdapter().notifyDataSetChanged();
+                            }
+                        } catch (Exception e) {
+                            CommonUtil.getInstance().updateEmptyView(empty_view, true);
+                            e.printStackTrace();
+                        }
+                    }
+                });
+
+
+    }
+
+    @Subscribe
+    public void onEventMainThread(BigEvent event) {
+        switch (event.getEventTypes()){
+            case REFRESH_XIAOMI_GAME_LIST:
+                initData();
+                break;
+        }
+        CommonUtil.getInstance().setEventResultViewStatus(event, view_list);
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        EventBus.getDefault().unregister(this);
+    }
+}

+ 4 - 5
app/src/main/java/com/sheep/gamegroup/view/activity/ActXinwanWeb.java

@@ -3,7 +3,6 @@ package com.sheep.gamegroup.view.activity;
 import android.app.Activity;
 import android.os.Build;
 import android.os.Bundle;
-import android.util.Log;
 import android.view.KeyEvent;
 import android.view.View;
 import android.webkit.WebChromeClient;
@@ -15,9 +14,8 @@ import android.widget.TextView;
 import com.kfzs.duanduan.BaseCompatActivity;
 import com.sheep.gamegroup.model.entity.XianWanEntity;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.DeviceIDUtil;
-import com.sheep.gamegroup.util.DeviceUtil;
-import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.WebviewJs;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.G;
@@ -176,17 +174,18 @@ public class ActXinwanWeb extends BaseCompatActivity {
      * https://h5.51xianwan.com/try/try_list_plus_browser.aspx?ptype=2&deviceid=8883300242xw&appid=1010&appsign=1000&keycode=07688c3e9a783b245e59311
      */
     private String assemblyData(){
+        String userId = DataUtil.getInstance().getUserId();
         StringBuffer stringBuffer = new StringBuffer();
         stringBuffer.append(xianWanEntity.getUrl()+"?");
         stringBuffer.append("ptype="+"2");
         stringBuffer.append("&deviceid="+ DeviceIDUtil.getimei(activity));
         stringBuffer.append("&appid="+ xianWanEntity.getAndroid().getAppid());
-        stringBuffer.append("&appsign="+ MyDbManager.getInstance().dbFindId());
+        stringBuffer.append("&appsign="+ userId);
         stringBuffer.append("&keycode="+CommonUtil.getInstance().encrypt2Md5(
                 xianWanEntity.getAndroid().getAppid()+""+
                         DeviceIDUtil.getimei(activity) +
                         2 +
-                        MyDbManager.getInstance().dbFindId() +
+                        userId +
                         xianWanEntity.getAndroid().getAppsecret()
         ));
         return stringBuffer.toString();

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

@@ -15,21 +15,17 @@ import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.presenter.BindOrChangeWeixinContract;
 import com.sheep.gamegroup.presenter.BindOrChangeWeixinPresenter;
-import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.TestUtil;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.jiuyan.samllsheep.utils.G;
-import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 import org.greenrobot.eventbus.EventBus;
-import org.xutils.ex.DbException;
 
 import javax.inject.Inject;
 
@@ -81,13 +77,9 @@ public class BindOrChangeWeixinAct extends BaseActivity implements BindOrChangeW
                 .bindOrChangeWeixinModule(new BindOrChangeWeixinModule(this))
                 .build()
                 .inject(this);
-        try {
-            mEntity = MyDbManager.getInstance().dbFindUser();
-        } catch (DbException e) {
-            e.printStackTrace();
-        }
+        userEntity = DataUtil.getInstance().getUserEntity();
     }
-    private UserEntity mEntity;
+    private UserEntity userEntity;
 
     @Override
     public void initListener() {
@@ -133,13 +125,12 @@ public class BindOrChangeWeixinAct extends BaseActivity implements BindOrChangeW
         if(from == ChangeWxOrTelAct.TYPE_RECHARGE){//来自充值功能,需要检查并跳转到绑定身份与银行卡信息界面
             if(
                     TestUtil.isTestRecharge() ||
-                    mEntity != null && mEntity.notCertification()){//没有实名认证
-                Jump2View.getInstance().goRealNameAuther(this, mEntity, 1);
+                    userEntity != null && userEntity.notCertification()){//没有实名认证
+                Jump2View.getInstance().goRealNameAuther(this, userEntity, 1);
             }
         }
         finish();
-        EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.ONFRESH_FGT_FAMLLSHEEP));
-        EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.REFRESH_DATA_PHONE));
+        CommonUtil.getInstance().updateUserInfo(null);
     }
 
     @Override

+ 5 - 8
app/src/main/java/com/sheep/gamegroup/view/activity/ChangeTelAct.java

@@ -21,9 +21,9 @@ import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.presenter.PhoneContract;
 import com.sheep.gamegroup.presenter.PhonePresenter;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.SelfCountDownTimer;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.jiuyan.samllsheep.R;
@@ -33,7 +33,6 @@ import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 import org.greenrobot.eventbus.EventBus;
-import org.xutils.ex.DbException;
 
 import javax.inject.Inject;
 
@@ -152,7 +151,7 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
             default:
                 break;
         }
-        mobiles = SpUtils.getPhone(activity);
+        mobiles = DataUtil.getInstance().getUserMobile();
         if(!TextUtils.isEmpty(mobiles)){//提示
             oldOrNew = 1;
             showChangeLayout.setVisibility(View.VISIBLE);
@@ -371,11 +370,9 @@ public class ChangeTelAct extends BaseActivity implements PhoneContract.View{
                 if(selfCountDownTimer != null)
                     selfCountDownTimer.reset(SelfCountDownTimer.FULL_SECOND);
             }else if(step == 4){
-                SpUtils.savePhone(activity,mobile);
-                G.showToast(o.getMsg()+"");
-                CommonUtil.getInstance()
-                        .getUserInfo(SheepApp.mContext);
-                EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.REFRESH_DATA_PHONE));
+                DataUtil.getInstance().setUserMobile(mobile);
+                G.showToast(o);
+                CommonUtil.getInstance().updateUserInfo(null);
                 finish();
             }
             if(o == null){

+ 2 - 107
app/src/main/java/com/sheep/gamegroup/view/activity/GamemakeMoneyAct.java

@@ -20,8 +20,8 @@ import com.sheep.gamegroup.util.MyGridview;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.view.adapter.AdpTryMakemoney;
 import com.sheep.gamegroup.view.adapter.AdpTrymakemoneyTabGridview;
-import com.sheep.gamegroup.view.fragment.FgtGameMakeMoney;
 import com.sheep.gamegroup.view.fragment.FgtMyGame;
+import com.sheep.gamegroup.view.fragment.FgtTryMakeMoney;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
@@ -44,12 +44,6 @@ public class GamemakeMoneyAct extends BaseActivity {
     TabLayout indicator;
     @BindView(R.id.pager)
     ViewPager pager;
-    @BindView(R.id.tab_gridview)
-    MyGridview tabGridview;
-    @BindView(R.id.select_tab_iv)
-    ImageView selectTabIv;
-    @BindView(R.id.task_gridview_layout)
-    LinearLayout task_gridview_layout;
     @BindView(R.id.show_flow_layout)
     LinearLayout show_flow_layout;
     private Activity activity;
@@ -57,12 +51,7 @@ public class GamemakeMoneyAct extends BaseActivity {
     private AdpTryMakemoney mAdapter;
     private String[] titles = new String[]{"推荐任务", "我的游戏"};
 
-    private AdpTrymakemoneyTabGridview tabGridviewAdp;
-    private ArrayList<Object> gridviewListAll = new ArrayList<>();
-    private ArrayList<Object> gridviewList = new ArrayList<>();
     private boolean clickFlag = false;
-    private GridViewEntity gridViewEntity;//选中的
-    private int select;
 
     private int is_succession;//0:一般任务 1:连续任务
 
@@ -98,70 +87,21 @@ public class GamemakeMoneyAct extends BaseActivity {
                 });
 
         mAdapter = new AdpTryMakemoney(getSupportFragmentManager(), this);
-        mAdapter.add(FgtGameMakeMoney.newInstance(0), titles[0]);
+        mAdapter.add(FgtTryMakeMoney.newInstance(0), titles[0]);
         mAdapter.add(FgtMyGame.newInstance(2), titles[1]);
         pager.setAdapter(mAdapter);
         indicator.setupWithViewPager(pager);
 
-        tabGridviewAdp = new AdpTrymakemoneyTabGridview(activity, gridviewList);
-        tabGridview.setAdapter(tabGridviewAdp);
-        indicator.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
-            @Override
-            public void onTabSelected(TabLayout.Tab tab) {
-//                if(tab.getPosition() == 0){
-//                    task_gridview_layout.setVisibility(View.VISIBLE);
-//                }else {
-//                    task_gridview_layout.setVisibility(View.GONE);
-//                }
-            }
-
-            @Override
-            public void onTabUnselected(TabLayout.Tab tab) {
-
-            }
-
-            @Override
-            public void onTabReselected(TabLayout.Tab tab) {
-
-            }
-        });
         pager.setCurrentItem(currentItem);
         CommonUtil.getInstance().reflex(indicator, activity);
     }
 
     @Override
     public void initListener() {
-        tabGridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                if(gridViewEntity == gridviewList.get(position)){
-                    return;
-                }
-                select = position;
-                gridViewEntity = (GridViewEntity) gridviewList.get(position);
-                for(int i=0;i<gridviewList.size();i++){
-                    if(position == i){
-                        ((GridViewEntity) gridviewList.get(i)).setSelectState(true);
-                    }else {
-                        ((GridViewEntity) gridviewList.get(i)).setSelectState(false);
-
-                    }
-                    tabGridviewAdp.notifyDataSetChanged();
-                }
-                try{
-                    //刷新界面
-                    mAdapter.getItem(indicator.getSelectedTabPosition()).onResume();
-                    Log.e("-----select position",indicator.getSelectedTabPosition()+"");
-                }catch (Exception e){
-                    e.printStackTrace();
-                }
-            }
-        });
     }
 
     @Override
     public void initData() {
-        task_gridview_layout.setVisibility(View.GONE);
         show_flow_layout.setVisibility(View.VISIBLE);
 
     }
@@ -173,20 +113,6 @@ public class GamemakeMoneyAct extends BaseActivity {
         ButterKnife.bind(this);
     }
 
-    @OnClick(R.id.select_tab_iv)
-    public void onViewClicked() {
-        clickFlag = !clickFlag;
-        setValueList2(clickFlag);
-        tabGridviewAdp.notifyDataSetChanged();
-    }
-
-    /**
-     * 获取tab的值,fragment调用
-     */
-    public GridViewEntity getTabValue(){
-        return gridViewEntity;
-    }
-
     /**
      * 获取is_succession,是否是连续任务
      */
@@ -194,37 +120,6 @@ public class GamemakeMoneyAct extends BaseActivity {
         return is_succession;
     }
 
-
-    /**
-     * test
-     * list 赋值
-     */
-    private void setValueList() {
-        gridviewListAll.clear();
-        for (int i = 0; i < 10; i++) {
-            if(i == 0){
-                gridviewListAll.add(new GridViewEntity(true, "click_" + i));
-            }else {
-                gridviewListAll.add(new GridViewEntity(false, "click_" + i));
-            }
-
-        }
-        setValueList2(clickFlag);
-    }
-    private void setValueList2(boolean flag) {
-        gridviewList.clear();
-        if(flag || gridviewListAll.size() <= 4){
-            gridviewList.addAll(gridviewListAll);
-            selectTabIv.setRotation(180);
-        }else {
-            selectTabIv.setRotation(0);
-            for (int i = 0; i < 4; i++) {
-                gridviewList.add(gridviewListAll.get(i));
-            }
-        }
-        tabGridviewAdp.notifyDataSetChanged();
-    }
-
     @Override
     protected void onDestroy() {
         super.onDestroy();

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

@@ -11,7 +11,6 @@ import com.sheep.gamegroup.di.components.DaggerLoginComponent;
 import com.sheep.gamegroup.di.modules.LoginModule;
 import com.sheep.gamegroup.presenter.LoginContract;
 import com.sheep.gamegroup.presenter.LoginPresenter;
-import com.sheep.gamegroup.util.ChannelContent;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.TestUtil;
@@ -79,21 +78,6 @@ public class LoginAct extends BaseUMActivity implements LoginContract.View {
     }
 
 
-    private void requestPremiss() {
-//        if (Build.VERSION.SDK_INT >= 23) {
-//            String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CALL_PHONE, Manifest.permission.READ_LOGS, Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.SET_DEBUG_APP, Manifest.permission.SYSTEM_ALERT_WINDOW, Manifest.permission.GET_ACCOUNTS, Manifest.permission.WRITE_APN_SETTINGS};
-//            ActivityCompat.requestPermissions(this, mPermissionList, 123);
-//        }
-    }
-
-    @Override
-    public void onRequestPermissionsResult(int requestCode,
-                                           String permissions[], int[] grantResults) {
-
-
-    }
-
-
     @Override
     public void initListener() {
 
@@ -101,9 +85,6 @@ public class LoginAct extends BaseUMActivity implements LoginContract.View {
 
     @Override
     public void initData() {
-        requestPremiss();
-        ChannelContent.getInstance().initChannelContent(this);
-
 
     }
 
@@ -112,7 +93,7 @@ public class LoginAct extends BaseUMActivity implements LoginContract.View {
 
     private void goTelLogin() {
         LOGIN_PHONE.onEvent();
-        String openId = SpUtils.getOpenId(getApplicationContext());
+        String openId = SpUtils.getToken(getApplicationContext());
         if (!TextUtils.isEmpty(openId)) {
             Jump2View.getInstance().checkPhoneOrGoHomePage(this);
             finish();

+ 45 - 54
app/src/main/java/com/sheep/gamegroup/view/activity/PersonalInfoAct.java

@@ -9,7 +9,6 @@ import android.widget.TextView;
 
 import com.alibaba.fastjson.JSONObject;
 import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
 import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.gamegroup.event.ImageHeadChange;
 import com.sheep.gamegroup.event.MoneyChange;
@@ -17,20 +16,18 @@ import com.sheep.gamegroup.event.UserNameChange;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.util.AppUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
-import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 import org.greenrobot.eventbus.ThreadMode;
-import org.xutils.ex.DbException;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;
@@ -51,7 +48,7 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_INFO_NAME;
 
 public class PersonalInfoAct extends AbsChooseImageActivity {
 
-    UserEntity mEntity;
+    UserEntity userEntity;
     @BindView(R.id.personal_info_name)
     TextView personal_info_name;
     @BindView(R.id.personal_info_code)
@@ -69,6 +66,7 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
     }
 
     private Activity activity;
+
     @Override
     public void initView() {
         activity = this;
@@ -90,58 +88,51 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
     TextView personal_info_wx;
     @BindView(R.id.personal_info_authentication)
     TextView personal_info_authentication;
+
     @Override
     public void initData() {
-        Intent i = getIntent();
-        if (i != null && i.hasExtra("info")) {
-            mEntity = (UserEntity) i.getSerializableExtra("info");
-            if (mEntity == null) {
-                try {
-                    mEntity = MyDbManager.getInstance().dbFindUser();
-                } catch (DbException e) {
-                    e.printStackTrace();
-                }
+        if (userEntity == null) {
+            userEntity = DataUtil.getInstance().getUserEntity();
+        }
+        if (userEntity != null) {
+            personal_info_name.setText(userEntity.getNickname());
+            personal_info_code.setText(userEntity.getInvitation_code());
+
+            Glide.with(PersonalInfoAct.this)
+                    .load(AppUtil.getQRLink(userEntity.getShareLink(), 90))
+                    .into(personal_info_qr);
+            GlideImageLoader.setAvatar(personal_info_avatar, userEntity.getAvatar());
+            //账号与安全
+
+            if (TextUtils.isEmpty(userEntity.getMobile())) {
+                personal_info_phone.setText("未绑定");
+            } else {
+                personal_info_phone.setText(userEntity.getMobile());
+                DataUtil.getInstance().setUserMobile(userEntity.getMobile());
             }
-            if(mEntity != null) {
-                personal_info_name.setText(mEntity.getNickname());
-                personal_info_code.setText(mEntity.getInvitation_code());
-
-                Glide.with(PersonalInfoAct.this)
-                        .load(AppUtil.getQRLink(mEntity.getShareLink(), 90))
-                        .into(personal_info_qr);
-                GlideImageLoader.setAvatar(personal_info_avatar, mEntity.getAvatar());
-                //账号与安全
-
-                if (TextUtils.isEmpty(mEntity.getMobile())) {
-                    personal_info_phone.setText("未绑定");
-                } else {
-                    personal_info_phone.setText(mEntity.getMobile());
-                    SpUtils.savePhone(activity, mEntity.getMobile());
-                }
 
-                if (TextUtils.isEmpty(mEntity.getWx_nickname())) {
-                    if(TextUtils.isEmpty(mEntity.getWx_openid())) {
-                        personal_info_wx.setText("未绑定");
-                    } else {
-                        personal_info_wx.setText("");
-                    }
+            if (TextUtils.isEmpty(userEntity.getWx_nickname())) {
+                if (TextUtils.isEmpty(userEntity.getWx_openid())) {
+                    personal_info_wx.setText("未绑定");
                 } else {
-                    personal_info_wx.setText(mEntity.getWx_nickname());
-                    SpUtils.saveWeixin(activity, mEntity.getWx_nickname());
+                    personal_info_wx.setText("");
                 }
-
-                refalshAuther(mEntity);
-                MoneyChange change=new MoneyChange();
-                change.setBalance(mEntity.getBalance()+"");
-                change.setTotal_asset(mEntity.getTotal_asset()+"");
+            } else {
+                personal_info_wx.setText(userEntity.getWx_nickname());
             }
+
+            refalshAuther(userEntity);
+            MoneyChange change = new MoneyChange();
+            change.setBalance(userEntity.getBalance() + "");
+            change.setTotal_asset(userEntity.getTotal_asset() + "");
         }
 
 
         EventBus.getDefault().register(this);
 
     }
-    private  void  refalshAuther(UserEntity entity ){
+
+    private void refalshAuther(UserEntity entity) {
         boolean isBanck = TextUtils.isEmpty(entity.getBank_card());
         boolean isId_number = TextUtils.isEmpty(entity.getId_number());
         boolean isRoalName = TextUtils.isEmpty(entity.getReal_name());
@@ -158,17 +149,17 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     public void onMessageEvent(UserNameChange done) {
-        UserEntity user = mEntity;
+        UserEntity user = userEntity;
         user.setNickname(done.getNikeName());
-        mEntity = user;
-        personal_info_name.setText(mEntity.getNickname());
+        userEntity = user;
+        personal_info_name.setText(userEntity.getNickname());
 
     }
 
 
-    @OnClick({ R.id.personal_info_avatar_container, R.id.personal_info_name_container, R.id.personal_info_qr_container,R.id.personal_info_phone_container, R.id.personal_info_wx_container, R.id.personal_info_authentication_container})
+    @OnClick({R.id.personal_info_avatar_container, R.id.personal_info_name_container, R.id.personal_info_qr_container, R.id.personal_info_phone_container, R.id.personal_info_wx_container, R.id.personal_info_authentication_container})
     public void onClick(View view) {
-        if(mEntity == null){
+        if (userEntity == null) {
             G.showToast(R.string.loading_data);
             return;
         }
@@ -179,21 +170,21 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
                 break;
             case R.id.personal_info_name_container:
                 Intent i = new Intent(PersonalInfoAct.this, ReNameActivity.class);
-                i.putExtra("name", mEntity.getNickname());
+                i.putExtra("name", userEntity.getNickname());
                 startActivity(i);
                 USER_INFO_NAME.onEvent();
                 break;
             case R.id.personal_info_qr_container:
-                ViewUtil.showQR(PersonalInfoAct.this, mEntity.getShareLink());
+                ViewUtil.showQR(PersonalInfoAct.this, userEntity.getShareLink());
                 break;
             case R.id.personal_info_phone_container:   //跳转到绑定手机号
                 Jump2View.getInstance().goBindPhone(activity, null);
                 BIND_PHONE.onEvent();
                 break;
             case R.id.personal_info_wx_container:  ////跳转到微信
-                if(mEntity == null){
+                if (userEntity == null) {
                     G.showToast(R.string.loading_data);
-                } else if(TextUtils.isEmpty(mEntity.getWx_openid())) {
+                } else if (TextUtils.isEmpty(userEntity.getWx_openid())) {
                     Jump2View.getInstance().goNoBindWx(activity, ChangeWxOrTelAct.TYPE_NORMAL);
                 } else {
                     G.showToast("您已经绑定微信");
@@ -201,7 +192,7 @@ public class PersonalInfoAct extends AbsChooseImageActivity {
                 BIND_WX.onEvent();
                 break;
             case R.id.personal_info_authentication_container: ////跳转授权
-                Jump2View.getInstance().goRealNameAuther(activity, mEntity, 0);
+                Jump2View.getInstance().goRealNameAuther(activity, userEntity, 0);
                 break;
         }
     }

+ 4 - 11
app/src/main/java/com/sheep/gamegroup/view/activity/PhoneAct.java

@@ -24,6 +24,7 @@ import com.sheep.gamegroup.model.util.EntityUtils;
 import com.sheep.gamegroup.presenter.PhoneContract;
 import com.sheep.gamegroup.presenter.PhonePresenter;
 import com.sheep.gamegroup.util.ActivityManager;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.MyDbManager;
@@ -250,16 +251,8 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
             e.printStackTrace();
         }
         if(loginEty != null) {
-            SpUtils.login(activity, loginEty.getToken());
-            try {
-                MyDbManager.getInstance().saveOrUpdateUser(loginEty.getUser());
-                UserEntity userEntity = MyDbManager.getInstance().dbFindUser();
-                Log.e("------userEntity", userEntity.getNickname() + "|" + userEntity.getMobile() + "");
-                G.showToast("登录成功");
-//            G.showToast(userEntity.getNickname() + "|" + userEntity.getMobile());
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
+            SpUtils.saveToken(activity, loginEty.getToken());
+            DataUtil.getInstance().setUserEntity(loginEty.getUser());
         }
 
         Jump2View.getInstance().goHomePageView(this, EntityUtils.getUserCode(loginEty));
@@ -322,7 +315,7 @@ public class PhoneAct extends BaseActivity implements PhoneContract.View {
 
 
     private void goMain(String openId) {
-        SpUtils.login(getApplicationContext(), openId);
+        SpUtils.saveToken(getApplicationContext(), openId);
         Jump2View.getInstance().goHomePageView(this, null);
         ActivityManager.getInstance().endActivity(LoginAct.class);
         finish();

+ 44 - 80
app/src/main/java/com/sheep/gamegroup/view/activity/RealNameAuthenAct.java

@@ -17,6 +17,8 @@ import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.presenter.RealNameAutherContract;
 import com.sheep.gamegroup.presenter.RealNameAutherPresenter;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.StringUtils;
@@ -29,7 +31,6 @@ import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
 import org.greenrobot.eventbus.EventBus;
-import org.xutils.ex.DbException;
 
 import java.util.HashMap;
 import java.util.Locale;
@@ -59,7 +60,7 @@ public class RealNameAuthenAct extends BaseActivity implements RealNameAutherCon
     @BindView(R.id.et_name)
     EditText etName;
 
-    UserEntity mEntity;
+    UserEntity userEntity;
     @Inject
     RealNameAutherPresenter presenter;
 
@@ -98,44 +99,39 @@ public class RealNameAuthenAct extends BaseActivity implements RealNameAutherCon
         }
         showProgress();
         tvSubmit.setVisibility(View.GONE);
-        updateUserInfo(new Action1<UserEntity>() {
-            @Override
-            public void call(UserEntity userEntity) {
-                hideProgress();
-                if (mEntity != null) {
-                    if (!TextUtils.isEmpty(mEntity.getReal_name())) {
-                        etName.setText(mEntity.getReal_name());
-                        count = count + 1;
-                        etName.setEnabled(false);
-                    }
-                    if (!TextUtils.isEmpty(mEntity.getId_number())) {
-                        etIdCard.setText(mEntity.getId_number());
-                        count = count + 1;
-                        etIdCard.setEnabled(false);
-                    }
-
-                    if (!TextUtils.isEmpty(mEntity.getBank_card())) {
-                        etBank.setText(mEntity.getBank_card());
-                        count = count + 1;
-                        etBank.setEnabled(false);
-                    }
-                    if (!TextUtils.isEmpty(mEntity.getBank_card_mobile())) {
-                        et_bank_mobile.setText(mEntity.getBank_card_mobile());
-                        count = count + 1;
-                        et_bank_mobile.setEnabled(false);
-                    }
-                    if (count >= 4) {
-                        tvSubmit.setVisibility(View.GONE);
-                    } else {
-                        tvSubmit.setVisibility(View.VISIBLE);
-                        ViewUtil.showMsgDialog(RealNameAuthenAct.this, new DialogConfig().setTitle("温馨提示")
-                                .setMsg("根据国家相关法律规定,为保障线上交易活动的安全,参与互联网大额提现等资金活动时需要进行实名认证。\n完成实名认证后,再次提现将不需要进行验证。")
-                                .setMsgGravity(Gravity.START).setMsgIndent(2).setBtnLeftText("确定"));
-                    }
+        userEntity = DataUtil.getInstance().getUserEntity();
+        if(userEntity != null){
+            if (!TextUtils.isEmpty(RealNameAuthenAct.this.userEntity.getReal_name())) {
+                etName.setText(RealNameAuthenAct.this.userEntity.getReal_name());
+                count = count + 1;
+                etName.setEnabled(false);
+            }
+            if (!TextUtils.isEmpty(RealNameAuthenAct.this.userEntity.getId_number())) {
+                etIdCard.setText(RealNameAuthenAct.this.userEntity.getId_number());
+                count = count + 1;
+                etIdCard.setEnabled(false);
+            }
 
-                }
+            if (!TextUtils.isEmpty(RealNameAuthenAct.this.userEntity.getBank_card())) {
+                etBank.setText(RealNameAuthenAct.this.userEntity.getBank_card());
+                count = count + 1;
+                etBank.setEnabled(false);
             }
-        });
+            if (!TextUtils.isEmpty(RealNameAuthenAct.this.userEntity.getBank_card_mobile())) {
+                et_bank_mobile.setText(RealNameAuthenAct.this.userEntity.getBank_card_mobile());
+                count = count + 1;
+                et_bank_mobile.setEnabled(false);
+            }
+            if (count >= 4) {
+                tvSubmit.setVisibility(View.GONE);
+            } else {
+                tvSubmit.setVisibility(View.VISIBLE);
+                ViewUtil.showMsgDialog(RealNameAuthenAct.this, new DialogConfig().setTitle("温馨提示")
+                        .setMsg("根据国家相关法律规定,为保障线上交易活动的安全,参与互联网大额提现等资金活动时需要进行实名认证。\n完成实名认证后,再次提现将不需要进行验证。")
+                        .setMsgGravity(Gravity.START).setMsgIndent(2).setBtnLeftText("确定"));
+            }
+
+        }
 
 
     }
@@ -161,8 +157,9 @@ public class RealNameAuthenAct extends BaseActivity implements RealNameAutherCon
         updateUserInfo(new Action1<UserEntity>() {
 
             @Override
-            public void call(UserEntity userEntity) {
-                if (userEntity != null)
+            public void call(UserEntity result) {
+                if (result != null)
+                    userEntity = result;
                     if (whereFrom == 1) {
                         Jump2View.getInstance().goWithdrawal(RealNameAuthenAct.this);
                     }
@@ -172,36 +169,7 @@ public class RealNameAuthenAct extends BaseActivity implements RealNameAutherCon
     }
 
     private void updateUserInfo(final Action1<UserEntity> action1) {
-        SheepApp.get(RealNameAuthenAct.this)
-                .getNetComponent()
-                .getApiService()
-                .getInfo()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage.getMsg() + "");
-                        if (action1 != null)
-                            action1.call(null);
-
-                    }
-
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        UserEntity userEntity = baseMessage.getData(UserEntity.class);
-                        if (userEntity != null) {
-                            mEntity = userEntity;
-                            try {
-                                MyDbManager.getInstance().saveOrUpdateUser(userEntity);
-                            } catch (Exception e) {
-                                e.printStackTrace();
-                            }
-                        }
-                        if (action1 != null)
-                            action1.call(mEntity);
-                    }
-                });
+        CommonUtil.getInstance().updateUserInfo(action1);
     }
 
     @Override
@@ -228,14 +196,10 @@ public class RealNameAuthenAct extends BaseActivity implements RealNameAutherCon
     }
 
     public void trySubmit() {
-        if (mEntity == null) {
-            try {
-                mEntity = MyDbManager.getInstance().dbFindUser();
-            } catch (DbException e) {
-                e.printStackTrace();
-            }
+        if (userEntity == null) {
+            userEntity = DataUtil.getInstance().getUserEntity();
         }
-        if (mEntity == null) {
+        if (userEntity == null) {
             G.showToast(R.string.unknown_error);
             return;
         }
@@ -286,15 +250,15 @@ public class RealNameAuthenAct extends BaseActivity implements RealNameAutherCon
         }
         map.put("bank_card_mobile", bankCardMobile);
 
-        ViewUtil.showMsgDialog(this, new DialogConfig().setTitle("重要提示").setMsgMore(String.format(Locale.CHINA, "你已执行%d次实名认证操作", mEntity.getCertification_count()))
+        ViewUtil.showMsgDialog(this, new DialogConfig().setTitle("重要提示").setMsgMore(String.format(Locale.CHINA, "你已执行%d次实名认证操作", userEntity.getCertification_count()))
                 .setMsg("实名认证首次免费。请务必确认您所提交的认证信息真实有效。若因信息填写错误造成认证失败。再次申请认证时需扣除您0.5绵羊币/次作为认证费用,请务必谨慎填写认证信息。")
                 .setMsgColor("0.5绵羊币/次", "#FF0000").setMsgIndent(2).setMsgGravity(Gravity.START)
                 .setBtnLeftText("返回修改").setBtnRightText("确认提交")
                 .setBtnRightOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View view) {
-                        if (mEntity != null)
-                            mEntity.setCertification_count(mEntity.getCertification_count() + 1);
+                        if (userEntity != null)
+                            userEntity.setCertification_count(userEntity.getCertification_count() + 1);
                         presenter.getTask(map);
                         UMConfigUtils.onEvent(UMConfigUtils.Event.USER_AUTHENTICATION);
                     }

+ 9 - 40
app/src/main/java/com/sheep/gamegroup/view/activity/RechargeQAct.java

@@ -13,7 +13,6 @@ import android.widget.AdapterView;
 import android.widget.EditText;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.sheep.gamegroup.absBase.BaseActivity;
@@ -22,9 +21,9 @@ import com.sheep.gamegroup.di.modules.RechargeQModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.RechargeQEntity;
 import com.sheep.gamegroup.model.entity.UserEntity;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.presenter.RechargeQContract;
 import com.sheep.gamegroup.presenter.RechargeQPresenter;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.MyGridview;
@@ -34,8 +33,6 @@ import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
-import org.xutils.ex.DbException;
-
 import java.util.ArrayList;
 import java.util.List;
 
@@ -43,8 +40,6 @@ import javax.inject.Inject;
 
 import butterknife.BindView;
 import butterknife.OnClick;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.schedulers.Schedulers;
 
 import static com.sheep.gamegroup.util.UMConfigUtils.Event.RECHARGE_QQ_PAY;
 
@@ -122,43 +117,17 @@ public class RechargeQAct extends BaseActivity implements RechargeQContract.View
         });
 
         tvZk.setText(getSpannableString());
-
-        try {
-            userEntity = MyDbManager.getInstance().dbFindUser();
-        } catch (DbException e) {
-            e.printStackTrace();
-        }
+        userEntity = DataUtil.getInstance().getUserEntity();
         if(userEntity != null){
             tvMybNumber.setText(String.format(getString(R.string.rechargeq_amount),userEntity.getBalance() +""));
         }else {
-            SheepApp.get(activity)
-                    .getNetComponent()
-                    .getApiService()
-                    .getInfo()
-                    .subscribeOn(Schedulers.io())
-                    .observeOn(AndroidSchedulers.mainThread())
-                    .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
-                        @Override
-                        public void onError(BaseMessage baseMessage) {
-                            G.showToast(baseMessage.getMsg() +"");
-
-                        }
-
-                        @Override
-                        public void onNext(BaseMessage baseMessage) {
-                            userEntity = JSON.parseObject(JSONObject.toJSONString(baseMessage.getData()), UserEntity.class);
-                            if(userEntity == null){
-                                tvMybNumber.setText(String.format(getString(R.string.rechargeq_amount),"0"));
-                                return;
-                            }
-                            try {
-                                MyDbManager.getInstance().saveOrUpdateUser(userEntity);
-                            } catch (Exception e) {
-                                e.printStackTrace();
-                            }
-                            tvMybNumber.setText(String.format(getString(R.string.rechargeq_amount),userEntity.getBalance() +""));
-                        }
-                    });
+            userEntity = DataUtil.getInstance().getUserEntity();
+            if(userEntity == null){
+                tvMybNumber.setText(String.format(getString(R.string.rechargeq_amount),"0"));
+                return;
+            }
+            DataUtil.getInstance().setUserEntity(userEntity);
+            tvMybNumber.setText(String.format(getString(R.string.rechargeq_amount),userEntity.getBalance() +""));
 
         }
 

+ 2 - 6
app/src/main/java/com/sheep/gamegroup/view/activity/SignCardAct.java

@@ -21,9 +21,9 @@ import com.sheep.gamegroup.model.entity.PunchAndSign;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.presenter.SignCardContract;
 import com.sheep.gamegroup.presenter.SignCardPresenter;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.util.ViewUtil;
@@ -264,11 +264,7 @@ public class SignCardAct extends BaseActivity implements SignCardContract.View {
     private void trySignUp() {
         UMConfigUtils.Event.PUNCH_PUNCH.onEvent();
         if (userEntity == null) {
-            try {
-                userEntity = MyDbManager.getInstance().dbFindUser();
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
+            userEntity = DataUtil.getInstance().getUserEntity();
         }
         if (userEntity == null || TextUtils.isEmpty(userEntity.getBalance())) {
             G.showToast(R.string.unknown_error);

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

@@ -25,13 +25,12 @@ import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.model.entity.Advertising;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.RxjavaCountDownTimer;
 import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 
@@ -127,7 +126,7 @@ public class SplashAct extends BaseActivity implements EasyPermissions.Permissio
                         isLoaddingData = false;
                         sendHandlerMessages(200);
                     } else {
-                        Advertising cacheAdvertising = CommonUtil.getInstance().getCacheResult(ApiKey.advertisements(1), Advertising.class);
+                        Advertising cacheAdvertising = DataUtil.getInstance().getCacheResult(ApiKey.advertisements(1), Advertising.class);
                         if (cacheAdvertising != null) {
                             isLoaddingData = false;
                             advertising = cacheAdvertising;
@@ -143,7 +142,7 @@ public class SplashAct extends BaseActivity implements EasyPermissions.Permissio
                                     .subscribe(new SheepSubscriber<BaseMessage>(activity) {
                                         @Override
                                         public void onNext(BaseMessage baseMessage) {
-                                            CommonUtil.getInstance().resetCacheTime(ApiKey.advertisements(1), 3600*5);//开屏广告最多缓存5个小时
+                                            DataUtil.getInstance().resetCacheTime(ApiKey.advertisements(1), 3600*5);//开屏广告最多缓存5个小时
                                             isLoaddingData = false;
                                             advertising = baseMessage.getData(Advertising.class);
                                             try {
@@ -204,9 +203,7 @@ public class SplashAct extends BaseActivity implements EasyPermissions.Permissio
 
     private void loadAdvertising() {
         if(advertising.isImage()) {
-            if(!TextUtils.equals("http://staticcdn.kuaifazs.com/upload/static/201807/25/16/76/L0Om90.jpg",advertising.getDisplay_src())) {
-                Glide.with(activity).load(advertising.getDisplay_src()).into(splash_bg);
-            }
+            Glide.with(activity).load(advertising.getDisplay_src()).into(splash_bg);
 //            btnJoin.setVisibility(View.GONE);
             splash_video_view.setVisibility(View.GONE);
         } else {
@@ -364,11 +361,14 @@ public class SplashAct extends BaseActivity implements EasyPermissions.Permissio
                     Jump2View.getInstance().goWeb(activity, advertising.getLink(), "微信二维码辅助好友注册任务");
                     break;
                 case 7:
-                    Jump2View.getInstance().goTryplayView(activity, 1);
+                    Jump2View.getInstance().goSequentialTaskView(activity);
                     break;
                 case 8:
                     Jump2View.getInstance().goSignCardAct(activity, null);
                     break;
+                case 15://小米游戏列表
+                    Jump2View.getInstance().goXiaomiGameList((Activity) activity, null);
+                    break;
             }
         }
     }

+ 47 - 23
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -24,8 +24,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.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
 import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
@@ -52,6 +50,7 @@ import com.sheep.gamegroup.presenter.TaskDetailContract;
 import com.sheep.gamegroup.presenter.TaskDetailPresenter;
 import com.sheep.gamegroup.usage.AppUsageManager;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.Jump2View;
@@ -72,6 +71,7 @@ import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
+import org.afinal.simplecache.ApiKey;
 import org.greenrobot.eventbus.EventBus;
 
 import java.util.ArrayList;
@@ -179,7 +179,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     //接口获取
     private TaskAcceptedEty gettaskAcceptedEty;
 
-    private int taskId = -1;
+    private int releaseTaskId = -1;
     private String game_id;
     private int game_type = -1;
 
@@ -206,10 +206,10 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         activity = this;
         btn_show = getIntent().getBooleanExtra("btn_show", false);
         isFromTaskList = getIntent().getBooleanExtra("is_from_task_list", false);
-        taskId = getIntent().getIntExtra("task_id", -1);
+        releaseTaskId = getIntent().getIntExtra("task_id", -1);
         game_id = getIntent().getStringExtra("game_id");
         game_type = getIntent().getIntExtra("game_type", -1);
-        LogUtil.println("TaskDetailAct", "btn_show =", btn_show, "isFromTaskList =", isFromTaskList, "taskId =", taskId, "game_id =", game_id, "game_type =", game_type);
+        LogUtil.println("TaskDetailAct", "btn_show =", btn_show, "isFromTaskList =", isFromTaskList, "taskId =", releaseTaskId, "game_id =", game_id, "game_type =", game_type);
         DaggerTaskDetailComponent.builder()
                 .netComponent(SheepApp.get(activity).getNetComponent())
                 .taskDetailModule(new TaskDetailModule(this))
@@ -233,9 +233,9 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
 
     @Override
     public void initData() {
-        if (taskId != -1 && !isGetTaskDesc) {
+        if (releaseTaskId != -1 && !isGetTaskDesc) {
             isGetTaskDesc = true;
-            accepteTaskDetail(taskId);
+            accepteTaskDetail(releaseTaskId);
             return;
         }
     }
@@ -285,7 +285,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         bottom_btn_layout.setVisibility(View.VISIBLE);
         btnTaskItem.setVisibility(View.VISIBLE);
         btnUpImag.setVisibility(View.VISIBLE);
-        if (taskReleaseEty.isIs_running() || game_id != null) {//已经领取任务
+        if ((gettaskAcceptedEty != null && gettaskAcceptedEty.isIs_running()) || taskReleaseEty.isIs_running() || game_id != null) {//已经领取任务
             switch (taskEty.getTask_type()) {// 1时间试玩任务 2 信用卡任务 3应用下载 4h5业务 1001畅思 1000连续任务, 1002 1003游戏任务
                 case 4://h5业务
                     type = 10;
@@ -626,7 +626,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                     }
                     break;
                 case R.id.detail_share_friend_tv:
-                    Jump2View.getInstance().tryShare(activity,"task_desc_url", "task_id", taskId);
+                    Jump2View.getInstance().tryShare(activity,"task_desc_url", "task_id", releaseTaskId);
                     break;
             }
         } catch (Exception e) {
@@ -844,7 +844,6 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
      * 领取任务
      */
     private void acceptedTask() {
-        hideProgress();
         showProgress(true);
         JSONObject object = new JSONObject();
         object.put("device_id", DeviceUtil.getDeviceId(activity));
@@ -864,12 +863,23 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
 
                     @Override
                     public void onNext(BaseMessage baseMessage) {
-                        hideProgress();
-                        initData();
+                        DataUtil.getInstance().reInitAcceptedTaskList(new Action1<BaseMessage>() {
+                            @Override
+                            public void call(BaseMessage baseMessage) {
+                                hideProgress();
+                                if(baseMessage != null) {
+                                    gettaskAcceptedEty = DataUtil.getInstance().getTaskAcceptedTaskByReleaseTaskId(releaseTaskId);
+                                    taskReleaseEty = gettaskAcceptedEty.getRelease_task();
+                                    taskReleaseEty.setIs_running(true);
+                                    taskReleaseEty.getTask().setRelease_task_id(taskReleaseEty.getId());
+                                    CommonUtil.getInstance().setTAskEnty(taskReleaseEty.getTask());
+                                    empty_view.setVisibility(View.GONE);
+                                    initWigget();
+                                    isGetTaskDesc = false;
+                                }
+                            }
+                        });
 
-                        taskReleaseEty.getTask().setRelease_task_id(taskReleaseEty.getId());
-                        CommonUtil.getInstance().setTAskEnty(taskReleaseEty.getTask());
-//                        EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.ONFRESH_TRYMAKEMANY_PAGE));
                     }
                 });
         UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_ACCEPT);
@@ -972,9 +982,9 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     private boolean isGetTaskDesc = false;
 
     public void freshData() {
-        if (taskId != -1 && !isGetTaskDesc && !isFresh) {
+        if (releaseTaskId != -1 && !isGetTaskDesc && !isFresh) {
             isGetTaskDesc = true;
-            accepteTaskDetail(taskId);
+            accepteTaskDetail(releaseTaskId);
         }
     }
 
@@ -1159,22 +1169,36 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     }
 
     /**
-     * 接受任务详情
+     * 获取接受任务详情
      */
-    private void accepteTaskDetail(int id){
+    private void accepteTaskDetail(final int releaseTaskId){
         showProgress();
-        CommonUtil.getInstance()
-                .getTaskAllDetail(id, new Action1<BaseMessage>() {
+        CommonUtil.getInstance().getTaskAllDetail(releaseTaskId, new Action1<BaseMessage>() {
                     @Override
                     public void call(BaseMessage baseMessage) {
-                        presenter.taskDesc(taskId);
                         try{
                             if(baseMessage.getCode() == 0)
                                 gettaskAcceptedEty = baseMessage.getData(TaskAcceptedEty.class);
-
                         }catch (Exception e){
                             e.printStackTrace();
                         }
+                        if(gettaskAcceptedEty == null || gettaskAcceptedEty.getRelease_task() == null){//不是正在进行的任务
+                            taskReleaseEty = DataUtil.getInstance().getCacheResult(ApiKey.releaseTaskDesc(releaseTaskId), TaskReleaseEty.class);
+                            if(taskReleaseEty == null) {//没有缓存的任务详情
+                                presenter.taskDesc(releaseTaskId);
+                            } else {//获取到缓存的任务详情
+                                hideProgress();
+                                empty_view.setVisibility(View.GONE);
+                                initWigget();
+                                isGetTaskDesc = false;
+                            }
+                        } else {//是正在运行的任务
+                            hideProgress();
+                            taskReleaseEty = gettaskAcceptedEty.getRelease_task();
+                            empty_view.setVisibility(View.GONE);
+                            initWigget();
+                            isGetTaskDesc = false;
+                        }
                     }
                 });
     }

+ 16 - 74
app/src/main/java/com/sheep/gamegroup/view/activity/WithdrawalAct.java

@@ -8,11 +8,8 @@ import android.widget.AdapterView;
 import android.widget.GridView;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.kfzs.duanduan.event.BigEvent;
-import com.kfzs.duanduan.event.EventTypes;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.kfzs.duanduan.utils.dlg.FormatAny;
 import com.sheep.gamegroup.absBase.BaseActivity;
@@ -22,22 +19,20 @@ import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.GridViewEntity;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.entity.WithdrawalList;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.presenter.WithdrawalContract;
 import com.sheep.gamegroup.presenter.WithdrawalPresenter;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.MyDbManager;
 import com.sheep.gamegroup.util.UMConfigUtils;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.view.adapter.WithdrawalAdapter;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.G;
-import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -46,8 +41,6 @@ import javax.inject.Inject;
 
 import butterknife.BindView;
 import butterknife.OnClick;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.schedulers.Schedulers;
 
 /**
  * 提现
@@ -71,7 +64,6 @@ public class WithdrawalAct extends BaseActivity implements WithdrawalContract.Vi
     private List<WithdrawalList> wlLists = new ArrayList<>();
 
     private WithdrawalAdapter adapter;
-    private ArrayList<Object> listData = new ArrayList<>();
     private int select;
     private String amount;
     private String balanceAmount = "0";//余额
@@ -85,7 +77,6 @@ public class WithdrawalAct extends BaseActivity implements WithdrawalContract.Vi
     @Override
     public void initView() {
         activity = this;
-        EventBus.getDefault().register(this);
         TitleBarUtils
                 .getInstance()
                 .setTitle(activity, "提现")
@@ -126,23 +117,23 @@ public class WithdrawalAct extends BaseActivity implements WithdrawalContract.Vi
 
     @Override
     public void initData() {
+    }
 
-        try {
-            if (userEntity == null)
-                userEntity = MyDbManager.getInstance().dbFindUser();
-            if(userEntity != null){
-                weixin_name_tv.setText(userEntity.getWx_nickname() +"");
-            }else {
-                weixin_name_tv.setText(SpUtils.getWeixin(activity)+"");
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+    @Override
+    protected void onResume() {
+        super.onResume();
+        mInitData();
+    }
 
+    public void mInitData() {
+        if (userEntity == null)
+            userEntity = DataUtil.getInstance().getUserEntity();
+        if(userEntity != null){
+            ViewUtil.setText(weixin_name_tv, userEntity.getWx_nickname());
+        }
         setBalanceAmount();
     }
 
-
     @OnClick({R.id.withdrawal_sure})
     public void onViewClicked(View view) {
         switch (view.getId()) {
@@ -182,7 +173,7 @@ public class WithdrawalAct extends BaseActivity implements WithdrawalContract.Vi
     @Override
     public void updateView(Object o) {
         hideProgress();
-        EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.ONFRESH_FGT_FAMLLSHEEP));
+        CommonUtil.getInstance().updateUserInfo(null);
         Jump2View.getInstance().goWithdrawalResultview(activity, NumberFormatUtils.parseFloat(amount));
     }
 
@@ -231,60 +222,11 @@ public class WithdrawalAct extends BaseActivity implements WithdrawalContract.Vi
 
                     wlLists.add(withdrawalList);
                 }
-
             }
-
             adapter.notifyDataSetChanged();
         }catch (Exception e){
             e.printStackTrace();
         }
     }
 
-    @Subscribe
-    public void onEventMainThread(BigEvent event){
-        switch (event.getEventTypes()){
-            case REFRESH_DATA_PHONE:
-                refreshData();
-                break;
-        }
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        EventBus.getDefault().unregister(this);
-    }
-    //Todo 刷新用户信息,可以写一个公用的
-    /**
-     * 刷新用户信息
-     */
-    private void refreshData(){
-        showProgress(false);
-        SheepApp.get(this)
-                .getNetComponent()
-                .getApiService()
-                .getInfo()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(this) {
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        hideProgress();
-                        G.showToast(""+baseMessage.getMsg());
-                    }
-
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        hideProgress();
-                        userEntity = JSON.parseObject(JSONObject.toJSONString(baseMessage.getData()), UserEntity.class);
-                        try {
-                            MyDbManager.getInstance().saveOrUpdateUser(userEntity);
-                            initData();
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                    }
-                });
-    }
-
 }

+ 332 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/XiaomiGameEntity.java

@@ -0,0 +1,332 @@
+package com.sheep.gamegroup.view.activity;
+
+import android.text.TextUtils;
+
+import com.sheep.gamegroup.heler.DownloadHelper;
+import com.sheep.gamegroup.model.api.IDownload;
+
+import java.io.Serializable;
+
+/**
+ * 小米游戏
+ * Created by ljy on 2018/7/29.
+ */
+
+public class XiaomiGameEntity implements Serializable,IDownload {
+    private int Id;//integer($int64)
+    private long created_at;//integer($int64)
+    private int download;//integer($int64)1:可下载 其他:不可下载
+
+    private long download_at;//integer($int64)预约下载开放时间
+
+    private int download_count;//integer($int64)下载数量
+
+    private int download_type;//integer($int32)1:非预约下载 2:预约下载
+
+    private String download_url;//string下载地址
+
+    private String icon;//string应用图标
+
+    private String intro;//string应用简介
+
+    private int is_recommend;//integer($int32)是否推荐:0:不推荐 1:推荐
+
+    private String manufacturer;//string厂商
+
+    private String name;//string应用名称
+
+    private String package_id;//stringGameID
+    private String package_name;//string应用包名称
+
+    private String package_size;//number($float)包大小(M)
+
+    private int package_type;//integer($int64)出包类型:1:快发出包 2:腾讯出包 3:小米出包 4:其它
+
+    private String pictures;//string宣传图标(分号隔开)
+
+    private int platform;//integer($int32)平台 0:全 1:安卓 2:IOS
+
+    private int receive_account;//integer($int64)0:未领取账号 1:已领取账号
+
+    private int record;//integer($int64)1:可记录 其他:不可记录
+
+    private float score;//number($float)评分
+
+    private int score_count;//integer($int64)评分人数
+
+    private int sort;//integer($int64)排序:越大越靠前
+
+    private int status;//integer($int32)1:开启 2:关闭
+
+    private long updated_at;//integer($int64)
+    private String versions;//string版本号
+
+    private int download_count_increment;//下载数量的增量
+
+    private String type;//类型
+
+    private int available_receive;//0:可领取账号 1:不可领取账号
+
+    public int getAvailable_receive() {
+        return available_receive;
+    }
+
+    public void setAvailable_receive(int available_receive) {
+        this.available_receive = available_receive;
+    }
+
+    public void setPackage_sizes(String package_sizes) {
+        this.package_size = package_sizes;
+    }
+
+    public int getDownload_count_increment() {
+        return download_count_increment;
+    }
+
+    public void setDownload_count_increment(int download_count_increment) {
+        this.download_count_increment = download_count_increment;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public int getId() {
+        return Id;
+    }
+
+    public void setId(int id) {
+        Id = id;
+    }
+
+    public long getCreated_at() {
+        return created_at;
+    }
+
+    public void setCreated_at(long created_at) {
+        this.created_at = created_at;
+    }
+
+    public int getDownload() {
+        return download;
+    }
+
+    public void setDownload(int download) {
+        this.download = download;
+    }
+
+    public long getDownload_at() {
+        return download_at;
+    }
+
+    public void setDownload_at(long download_at) {
+        this.download_at = download_at;
+    }
+
+    public int getDownload_count() {
+        return download_count;
+    }
+
+    public void setDownload_count(int download_count) {
+        this.download_count = download_count;
+    }
+
+    public int getDownload_type() {
+        return download_type;
+    }
+
+    public void setDownload_type(int download_type) {
+        this.download_type = download_type;
+    }
+
+    public String getDownload_url() {
+        return download_url;
+    }
+
+    public void setDownload_url(String download_url) {
+        this.download_url = download_url;
+    }
+
+    @Override
+    public String getPackage_names() {
+        return package_name;
+    }
+
+    @Override
+    public int getTask_type() {
+        return package_type;
+    }
+
+    @Override
+    public String getDownload_link() {
+        return download_url;
+    }
+
+    @Override
+    public String getTask_name() {
+        return name;
+    }
+
+    public String getIcon() {
+        return icon;
+    }
+
+    @Override
+    public String getPackage_size() {
+        return TextUtils.isEmpty(package_size)?"0":package_size;
+    }
+
+    public void setIcon(String icon) {
+        this.icon = icon;
+    }
+
+    public String getIntro() {
+        return intro;
+    }
+
+    public void setIntro(String intro) {
+        this.intro = intro;
+    }
+
+    public int getIs_recommend() {
+        return is_recommend;
+    }
+
+    public void setIs_recommend(int is_recommend) {
+        this.is_recommend = is_recommend;
+    }
+
+    public String getManufacturer() {
+        return manufacturer;
+    }
+
+    public void setManufacturer(String manufacturer) {
+        this.manufacturer = manufacturer;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPackage_id() {
+        return package_id;
+    }
+
+    public void setPackage_id(String package_id) {
+        this.package_id = package_id;
+    }
+
+    public String getPackage_name() {
+        return package_name;
+    }
+
+    public void setPackage_name(String package_name) {
+        this.package_name = package_name;
+    }
+
+    @Override
+    public int getAcceptedTaskId() {
+        return 0;
+    }
+
+    public int getPackage_type() {
+        return package_type;
+    }
+
+    public void setPackage_type(int package_type) {
+        this.package_type = package_type;
+    }
+
+    public String getPictures() {
+        return pictures;
+    }
+
+    public void setPictures(String pictures) {
+        this.pictures = pictures;
+    }
+
+    public int getPlatform() {
+        return platform;
+    }
+
+    public void setPlatform(int platform) {
+        this.platform = platform;
+    }
+
+    public int getReceive_account() {
+        return receive_account;
+    }
+
+    public void setReceive_account(int receive_account) {
+        this.receive_account = receive_account;
+    }
+
+    public int getRecord() {
+        return record;
+    }
+
+    public void setRecord(int record) {
+        this.record = record;
+    }
+
+    public float getScore() {
+        return score;
+    }
+
+    public void setScore(float score) {
+        this.score = score;
+    }
+
+    public int getScore_count() {
+        return score_count;
+    }
+
+    public void setScore_count(int score_count) {
+        this.score_count = score_count;
+    }
+
+    public int getSort() {
+        return sort;
+    }
+
+    public void setSort(int sort) {
+        this.sort = sort;
+    }
+
+    public int getStatus() {
+        return status;
+    }
+
+    public void setStatus(int status) {
+        this.status = status;
+    }
+
+    public long getUpdated_at() {
+        return updated_at;
+    }
+
+    public void setUpdated_at(long updated_at) {
+        this.updated_at = updated_at;
+    }
+
+    public String getVersions() {
+        return TextUtils.isEmpty(versions)?"0":versions;
+    }
+
+    public void setVersions(String versions) {
+        this.versions = versions;
+    }
+    private DownloadHelper downloadHelper = new DownloadHelper();
+
+    public DownloadHelper getDownloadHelper() {
+        return downloadHelper;
+    }
+}

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

@@ -3,10 +3,8 @@ package com.sheep.gamegroup.view.adapter;
 import android.app.Activity;
 import android.content.Context;
 import android.support.annotation.NonNull;
-import android.support.constraint.ConstraintLayout;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
-import android.text.Html;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -16,7 +14,6 @@ import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import com.bumptech.glide.Glide;
-import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
 import com.bumptech.glide.request.RequestOptions;
 import com.kfzs.appstore.utils.adapter.recyclerview.ViewHolder;
 import com.kfzs.duanduan.adp.AdpCommonRecy;
@@ -188,7 +185,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
 
             @Override
             public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
-                final OrienteeringDetail item = ListUtil.getIndex(etyList, i);
+                final OrienteeringDetail item = ListUtil.getItem(etyList, i);
                 if(item == null){
                     return;
                 }
@@ -385,7 +382,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
 
             @Override
             public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, final int i) {
-                final GameAgencyRechargePlatformEntity item = ListUtil.getIndex(etyList, i);
+                final GameAgencyRechargePlatformEntity item = ListUtil.getItem(etyList, i);
                 if(item == null){
                     return;
                 }
@@ -458,7 +455,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
 
             @Override
             public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int i) {
-                final TaskReleaseEty taskReleaseEty = ListUtil.getIndex(etyList, i);
+                final TaskReleaseEty taskReleaseEty = ListUtil.getItem(etyList, i);
                 final TaskEty taskEty;
                 if (taskReleaseEty == null || (taskEty = taskReleaseEty.getTask()) == null) {
                     return;
@@ -566,7 +563,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
 
             @Override
             public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, final int i) {
-                final TaskReleaseEty taskReleaseEty = ListUtil.getIndex(etyList, i);
+                final TaskReleaseEty taskReleaseEty = ListUtil.getItem(etyList, i);
                 final TaskEty taskEty;
                 if (taskReleaseEty == null || (taskEty = taskReleaseEty.getTask()) == null) {
                     return;
@@ -742,7 +739,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                 final TaskAcceptedEty taskAcceptedEty;
                 final TaskReleaseEty taskReleaseEty;
                 final TaskEty taskEty;
-                if((taskAcceptedEty = ListUtil.getIndex(etyList, i)) == null
+                if((taskAcceptedEty = ListUtil.getItem(etyList, i)) == null
                         || (taskReleaseEty = taskAcceptedEty.getRelease_task()) == null
                         || (taskEty = taskReleaseEty.getTask()) == null){
                     return;
@@ -819,7 +816,7 @@ public class TryMakeMoneyAdp extends AdpCommonRecy<RecyleObj> {
                 viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {
-                        TaskAcceptedEty item = ListUtil.getIndex(etyList, i);
+                        TaskAcceptedEty item = ListUtil.getItem(etyList, i);
                         if(item == null){
                             return;
                         }

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

@@ -415,7 +415,7 @@ public class DialogAddAccount {
     }
 
     private void selectAccount(int position) {
-        GameAccountEntity item = ListUtil.getIndex(gameAccountListEntity, position);
+        GameAccountEntity item = ListUtil.getItem(gameAccountListEntity, position);
         if(item == null)
             return;
         ViewUtil.setText(game_account_et, item.getTask_name());
@@ -447,7 +447,7 @@ public class DialogAddAccount {
     }
 
     private void selectPlatform(int position) {
-        GridViewEntity item = ListUtil.getIndex(gamePlatorEntity, position);
+        GridViewEntity item = ListUtil.getItem(gamePlatorEntity, position);
         if(item == null)
             return;
         ViewUtil.setText(game_account_plator_spinner_tv, item.getName());
@@ -466,7 +466,7 @@ public class DialogAddAccount {
     }
 
     private void selectGame(int position) {
-        GameAccountEntity item = ListUtil.getIndex(gameAccountEntity, position);
+        GameAccountEntity item = ListUtil.getItem(gameAccountEntity, position);
         if(item == null)
             return;
         ViewUtil.setText(game_account_game_list_tv_spinner, item.getTask_name());

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

@@ -45,7 +45,7 @@ public class DialogChooseImage {
                                 .setPhotoCount(1)
                                 .setShowCamera(true)
                                 .setShowGif(false)
-                                .setPreviewEnabled(false)
+                                .setPreviewEnabled(true)
                                 .start(activity, PhotoPicker.REQUEST_CODE);
                     }
                 });

+ 0 - 479
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGameMakeMoney.java

@@ -1,479 +0,0 @@
-package com.sheep.gamegroup.view.fragment;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.alibaba.fastjson.JSONArray;
-import com.kfzs.duanduan.event.BigEvent;
-import com.sheep.gamegroup.di.components.DaggerFgtMakeMoneyComponent;
-import com.sheep.gamegroup.di.modules.TryMakeMoneyModule;
-import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.GridViewEntity;
-import com.sheep.gamegroup.model.entity.RecyleObj;
-import com.sheep.gamegroup.model.entity.RecyleType;
-import com.sheep.gamegroup.model.entity.RequestParameEty;
-import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
-import com.sheep.gamegroup.model.entity.TaskReleaseEty;
-import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.presenter.TryMakeMoneyPresenter;
-import com.sheep.gamegroup.util.CommonUtil;
-import com.sheep.gamegroup.view.activity.GamemakeMoneyAct;
-import com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp;
-import com.sheep.jiuyan.samllsheep.R;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.base.BaseFragment;
-import com.sheep.gamegroup.presenter.TryMakeMoneyContract;
-import com.sheep.jiuyan.samllsheep.utils.G;
-
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.inject.Inject;
-
-import butterknife.BindView;
-import butterknife.ButterKnife;
-import butterknife.Unbinder;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.schedulers.Schedulers;
-
-/**
- * Created by ljy on 2018/6/12.
- */
-
-public class FgtGameMakeMoney extends BaseFragment implements TryMakeMoneyContract.View {
-    @BindView(R.id.recyclerview)
-    RecyclerView recyclerview;
-    @BindView(R.id.refresh)
-    SwipeRefreshLayout refresh;
-    @BindView(R.id.empty_view)
-    View empty_view;
-    Unbinder unbinder;
-
-    @Inject
-    TryMakeMoneyPresenter presenter;
-    private Activity activity;
-    private TryMakeMoneyAdp tryMakeMoneyAdp;
-    private int position = 0;
-    private List<TaskReleaseEty> releaseEtyLists = new ArrayList<>();
-    private List<TaskReleaseEty> releaseEtyListsBegin = new ArrayList<>();
-    private int type = 0;
-    private GridViewEntity gridViewEntity;//选中的
-    private int is_succession;//0:一般任务 1:连续任务
-
-    private void checkAndInitView() {
-        if(refresh == null)
-            refresh = findViewById(R.id.refresh);
-        if(empty_view == null)
-            empty_view = findViewById(R.id.empty_view);
-    }
-    private void notifyDataSetChanged(){
-        checkAndInitView();
-        tryMakeMoneyAdp.refreshAdapter();
-        if(tryMakeMoneyAdp.isEmpty() && releaseEtyLists.isEmpty() && releaseEtyListsBegin.isEmpty()){
-            CommonUtil.getInstance().updateEmptyView(empty_view, true);
-        }else {
-            empty_view.setVisibility(View.GONE);
-        }
-        refresh.setRefreshing(false);
-    }
-    public static FgtGameMakeMoney newInstance(int type){
-        FgtGameMakeMoney fgtTryMakeMoney = new FgtGameMakeMoney();
-        Bundle bundle = new Bundle();
-        bundle.putInt("type", type);
-        fgtTryMakeMoney.setArguments(bundle);
-        return fgtTryMakeMoney;
-    }
-
-    public FgtGameMakeMoney() {
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-        // TODO: inflate a fragment view
-        View rootView = super.onCreateView(inflater, container, savedInstanceState);
-        unbinder = ButterKnife.bind(this, rootView);
-        Bundle bundle = getArguments();
-        if(bundle != null){
-            type = bundle.getInt("type", 0);
-        }
-        return rootView;
-    }
-
-    @Override
-    public int getLayoutId() {
-        return R.layout.fgt_try_makemoney_layout;
-    }
-
-    @Override
-    public void onViewCreated() {
-        activity = getActivity();
-
-        initView();
-    }
-
-    public void initView() {
-        if(activity instanceof GamemakeMoneyAct)
-            is_succession = ((GamemakeMoneyAct) activity).getIsSuccession();//0:一般任务 1:连续任务
-        EventBus.getDefault().register(this);
-        DaggerFgtMakeMoneyComponent.builder()
-                .netComponent(SheepApp.get(activity).getNetComponent())
-                .tryMakeMoneyModule(new TryMakeMoneyModule(FgtGameMakeMoney.this))
-                .build()
-                .inject(FgtGameMakeMoney.this);
-        recyclerview.setLayoutManager(new LinearLayoutManager(activity));
-        tryMakeMoneyAdp = new TryMakeMoneyAdp(activity);
-        for (int i = 0; i < 3; i++) {
-            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
-        }
-        recyclerview.setAdapter(tryMakeMoneyAdp);
-
-        initListener();
-
-    }
-
-    public void initListener() {
-        refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
-            @Override
-            public void onRefresh() {
-                initData();
-            }
-        });
-        recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
-            @Override
-            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
-                super.onScrollStateChanged(recyclerView, newState);
-            }
-
-            @Override
-            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
-
-                int topRowVerticalPosition =
-                        (recyclerView == null || recyclerView.getChildCount() == 0) ? 0 : recyclerView.getChildAt(0).getTop();
-
-                refresh.setEnabled(topRowVerticalPosition >= 0);
-            }
-        });
-    }
-    public void reFresh(){
-//        if(refresh.isRefreshing()){
-//            return;
-//        }
-        refresh.setRefreshing(true);
-        initData();
-    }
-    public void initData() {
-        empty_view.setVisibility(View.GONE);
-        type = 0;
-        position = 0;
-        releaseEtyLists.clear();
-        tryMakeMoneyAdp.clear();
-        tryMakeMoneyAdp.addType(type);
-        for (int i = 0; i < 3; i++) {
-            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
-        }
-        tryMakeMoneyAdp.setIs_succession(is_succession);
-        if(activity instanceof GamemakeMoneyAct) {
-            gridViewEntity = ((GamemakeMoneyAct) activity).getTabValue();
-            if (activity instanceof GamemakeMoneyAct)
-                SheepApp.getInstance()
-                        .getNetComponent()
-                        .getApiService()
-                        .run_game_task()
-                        .subscribeOn(Schedulers.io())
-                        .observeOn(AndroidSchedulers.mainThread())
-                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
-                            @Override
-                            public void onError(BaseMessage baseMessage) {
-                                hideProgress();
-                                try {
-                                    switch (baseMessage.getCode()) {
-                                        case 300://未查询到数据
-                                            G.showToast(" 未查询到数据!");
-                                            break;
-                                        default:
-                                            G.showToast(" 网络错误!");
-                                            break;
-                                    }
-                                } catch (Exception e) {
-                                    e.printStackTrace();
-                                    G.showToast(" 网络错误!");
-                                }
-                                getNetWork(type);
-//                            notifyDataSetChanged();
-                            }
-
-                            @Override
-                            public void onNext(BaseMessage baseMessage) {
-                                hideProgress();
-                                try {
-                                    List<TaskAcceptedEty> taskAcceptedEty = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), TaskAcceptedEty.class);
-                                    if (taskAcceptedEty != null && taskAcceptedEty.size() > 0) {
-                                        tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, taskAcceptedEty), 0);
-                                        tryMakeMoneyAdp.addPresenter(presenter);
-                                        position++;
-                                    }
-                                } catch (Exception e) {
-                                    e.printStackTrace();
-                                }
-                                getNetWork(type);
-                                notifyDataSetChanged();
-
-                            }
-                        });
-        }
-    }
-
-    @Override
-    public void onDestroyView() {
-        super.onDestroyView();
-        unbinder.unbind();
-
-        EventBus.getDefault().unregister(this);
-    }
-
-    @Override
-    public void updateData2View(Object o) {
-
-    }
-
-    @Override
-    public void failData2View(Object o) {
-
-    }
-
-    @Override
-    public void acceptedTaskUpdataView(Object o) {
-
-    }
-
-    @Override
-    public void failAcceptedTask2View(Object o) {
-        try {
-            BaseMessage baseMessage = (BaseMessage) o;
-            switch (baseMessage.getCode()){
-                case 300://未查询到数据
-                    G.showToast(" 未查询到数据!");
-                    break;
-                default:
-                    G.showToast(" 网络错误!");
-                    break;
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-            G.showToast(" 网络错误!");
-        }
-    }
-
-    @Override
-    public void giveUpTaskSuccesView(Object o) {
-        G.showToast("取消任务成功");
-        CommonUtil.getInstance().setTAskEnty(null);
-        reFresh();
-    }
-
-    @Override
-    public void giveUpTaskFailView(Object o) {
-        try {
-            BaseMessage baseMessage = (BaseMessage) o;
-            G.showToast(baseMessage.getMsg()+"");
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-    @Override
-    public void returnTaskTaskUpdataView(Object o) {
-
-        try{
-            BaseMessage baseMessage = (BaseMessage) o;
-            List<TaskAcceptedEty> taskAcceptedEty = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), TaskAcceptedEty.class);
-            if(taskAcceptedEty != null && taskAcceptedEty.size()>0){
-                tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, taskAcceptedEty),0);
-                tryMakeMoneyAdp.addPresenter(presenter);
-                position ++;
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-        getNetWork(type);
-        notifyDataSetChanged();
-    }
-
-    @Override
-    public void failReturnTask2View(Object o) {
-        try {
-            BaseMessage baseMessage = (BaseMessage) o;
-            switch (baseMessage.getCode()){
-                case 300://未查询到正在运行的任务
-//                    G.showToast(" 未查询到正在运行的任务!");
-                    break;
-                default:
-                    G.showToast(" 网络错误!");
-                    break;
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-            G.showToast(" 网络错误!");
-        }
-        getNetWork(type);
-        notifyDataSetChanged();
-    }
-
-    /**
-     *  获取已经发布任务
-     * @param o
-     */
-    @Override
-    public void releaseTaskTaskUpdataView(Object o) {
-        try{
-            if(type == 0){
-                type = 1;
-
-
-                BaseMessage baseMessage = (BaseMessage) o;
-                List<TaskReleaseEty> releaseEtyList = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), TaskReleaseEty.class);
-                if(releaseEtyList != null){
-                    releaseEtyLists.addAll(releaseEtyList);
-                    tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists),position);
-                    position++;
-                }
-
-                getNetWork(type);
-            }else if(type == 1){
-                BaseMessage baseMessage = (BaseMessage) o;
-                List<TaskReleaseEty> releaseEtyList = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), TaskReleaseEty.class);
-                if(releaseEtyList != null){
-                    releaseEtyListsBegin.clear();
-                    releaseEtyListsBegin.addAll(releaseEtyList);
-                    tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.BEGIN_TASK, releaseEtyListsBegin),position);
-                    position++;
-                }
-            }
-
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-        notifyDataSetChanged();
-    }
-
-    @Override
-    public void failReleaseTask2View(Object o) {
-
-        if(type == 0){
-            type = 1;
-            getNetWork(type);
-        }
-        notifyDataSetChanged();
-    }
-
-    @Subscribe
-    public void onEventMainThread(BigEvent event){
-        switch (event.getEventTypes()){
-            case ONFRESH_TRYMAKEMANY_PAGE:
-//                reFresh();
-                break;
-        }
-    }
-
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-    }
-    /**
-     * 滚动到顶部
-     */
-    private boolean move;
-    private String string = "0";
-    private void goTop(){
-        final LinearLayoutManager manager = (LinearLayoutManager) recyclerview.getLayoutManager();
-        int fir = manager.findFirstVisibleItemPosition();
-        int end = manager.findLastVisibleItemPosition();
-        final int p = Integer.parseInt(string);
-        if (p <= fir) {
-            recyclerview.scrollToPosition(p);
-        } else if (p <= end) {
-            int top = recyclerview.getChildAt(p - fir).getTop();
-            recyclerview.scrollBy(0, top);
-        } else {
-            recyclerview.scrollToPosition(p);    //先让当前view滚动到列表内
-            move = true;
-        }
-        recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener()
-        {
-            @Override
-            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
-                super.onScrolled(recyclerView, dx, dy);
-                if (move) {
-                    move = false;
-                    int n = p - manager.findFirstVisibleItemPosition();
-                    if (n >= 0 && n < recyclerView.getChildCount()) {
-                        recyclerView.scrollBy(0, recyclerView.getChildAt(n).getTop()); //滚动到顶部
-                    }
-                }
-            }
-        });
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-        if(tryMakeMoneyAdp != null){
-            tryMakeMoneyAdp.cancelAllTimers();
-        }
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        if (presenter != null) {
-            reFresh();
-        }
-    }
-
-    @Override
-    public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        super.onActivityResult(requestCode, resultCode, data);
-        try {
-
-            if(tryMakeMoneyAdp != null){
-
-                tryMakeMoneyAdp.refreshAdapter();
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * 即将开始
-     * type: 0 1
-     * task_type:1002平台游戏,1003 腾讯游戏,1004 小米游戏
-     */
-    private void getNetWork(int type){
-        if(type > 1){
-            return;
-        }
-        RequestParameEty parameEty = new RequestParameEty();
-        parameEty.setHashMap(
-                CommonUtil.getInstance()
-                        .setHashMap(1,
-                                100,
-                                SheepApp.getInstance().getConnectAddress().getPlatForm(),
-                                0,
-                                0,
-                                type,
-                                1002 + ","+ 1003,
-                                0));
-        presenter.releaseTask(parameEty);
-    }
-}

+ 20 - 33
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMyGame.java

@@ -11,7 +11,6 @@ import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.TextView;
 
-import com.alibaba.fastjson.JSON;
 import com.arialyy.annotations.Download;
 import com.arialyy.aria.core.download.DownloadTask;
 import com.kfzs.duanduan.utils.ApkUtils;
@@ -20,8 +19,9 @@ import com.sheep.gamegroup.model.entity.OrienteeringDetail;
 import com.sheep.gamegroup.model.entity.RecyleObj;
 import com.sheep.gamegroup.model.entity.RecyleType;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp;
 import com.sheep.gamegroup.view.customview.SheepmSwipeRefreshLayout;
 import com.sheep.jiuyan.samllsheep.R;
@@ -29,6 +29,7 @@ import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseFragment;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
+import org.afinal.simplecache.ApiKey;
 import org.greenrobot.eventbus.Subscribe;
 
 import java.util.List;
@@ -88,10 +89,7 @@ public class FgtMyGame extends BaseFragment {
 
         recyclerview.setLayoutManager(new LinearLayoutManager(activity));
         tryMakeMoneyAdp = new TryMakeMoneyAdp(activity);
-
-        for (int i = 0; i < 1; i++) {
-            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
-        }
+        tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
         recyclerview.setAdapter(tryMakeMoneyAdp);
         initListener();
 
@@ -101,7 +99,7 @@ public class FgtMyGame extends BaseFragment {
         refresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
             @Override
             public void onRefresh() {
-                initData();
+                refreshData();
             }
         });
         recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
@@ -122,26 +120,30 @@ public class FgtMyGame extends BaseFragment {
     }
 
     private void initData() {
-        list.clear();
-        for (int i = 0; i < 1; i++) {
-            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
+        refresh.setRefreshing(true);
+        List<OrienteeringDetail> newList = DataUtil.getInstance().getCacheList(ApiKey.my_games, OrienteeringDetail.class);
+        if(newList == null){
+            refreshData();
+        } else {
+            list = newList;
+            notifyDataSetChanged();
         }
+    }
+    private void refreshData() {
         SheepApp.getInstance().getNetComponent().getApiService().getMyGames(page, per_page)
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                     @Override
                     public void onNext(BaseMessage baseMessage) {
-                        List<OrienteeringDetail> newList = baseMessage.getDatas(OrienteeringDetail.class);
-                        if(newList != null && newList.size()>0){
-                            list.addAll(newList);
-                        }
+                        list = baseMessage.getDataList(OrienteeringDetail.class);
                         notifyDataSetChanged();
                     }
 
                     @Override
                     public void onError(BaseMessage baseMessage) {
                         G.showToast(baseMessage);
+                        list.clear();
                         notifyDataSetChanged();
                     }
                 });
@@ -154,21 +156,14 @@ public class FgtMyGame extends BaseFragment {
     }
     private void notifyDataSetChanged(){
         checkAndInitView();
-        tryMakeMoneyAdp.refreshAdapter();
-        if(tryMakeMoneyAdp.isEmpty() && list.isEmpty()){
-
-            empty_view.setVisibility(View.VISIBLE);
-        }else {
+        boolean isEmpty = tryMakeMoneyAdp.isEmpty() && list.isEmpty();
+        CommonUtil.getInstance().updateEmptyView(empty_view, isEmpty);
+        if(!isEmpty){
             tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.GAME_TASK, list),0);
-            empty_view.setVisibility(View.GONE);
         }
+        tryMakeMoneyAdp.refreshAdapter();
         refresh.setRefreshing(false);
     }
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-//        EventBus.getDefault().unregister(this);
-    }
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -191,10 +186,6 @@ public class FgtMyGame extends BaseFragment {
     @Override
     public void onResume() {
         super.onResume();
-        reFresh();
-    }
-    public void reFresh(){
-        refresh.setRefreshing(true);
         initData();
     }
 
@@ -211,7 +202,6 @@ public class FgtMyGame extends BaseFragment {
                 return;
             }
             tvProgress.setText(String.format(Locale.CHINA, "%d%%",Math.abs(p)));
-            tryMakeMoneyAdp.notifyDataSetChanged();
 
         } catch (Exception e) {
             e.printStackTrace();
@@ -234,7 +224,6 @@ public class FgtMyGame extends BaseFragment {
                 return;
             }
             tvProgress.setText("已经取消");
-            tryMakeMoneyAdp.notifyDataSetChanged();
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -249,7 +238,6 @@ public class FgtMyGame extends BaseFragment {
                 return;
             }
             tvProgress.setText("下载失败");
-            tryMakeMoneyAdp.notifyDataSetChanged();
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -263,7 +251,6 @@ public class FgtMyGame extends BaseFragment {
                 return;
             }
             tvProgress.setText("开始安装");
-            tryMakeMoneyAdp.notifyDataSetChanged();
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 108 - 179
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtTryMakeMoney.java

@@ -1,5 +1,6 @@
 package com.sheep.gamegroup.view.fragment;
 
+import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.support.v4.widget.SwipeRefreshLayout;
@@ -9,13 +10,10 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
-import com.alibaba.fastjson.JSONArray;
 import com.kfzs.duanduan.event.BigEvent;
-import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.sheep.gamegroup.di.components.DaggerFgtTryMakeMoneyComponent;
 import com.sheep.gamegroup.di.modules.TryMakeMoneyModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.GridViewEntity;
 import com.sheep.gamegroup.model.entity.RecyleObj;
 import com.sheep.gamegroup.model.entity.RecyleType;
 import com.sheep.gamegroup.model.entity.RequestParameEty;
@@ -24,7 +22,9 @@ import com.sheep.gamegroup.model.entity.TaskReleaseEty;
 import com.sheep.gamegroup.presenter.TryMakeMoneyContract;
 import com.sheep.gamegroup.presenter.TryMakeMoneyPresenter;
 import com.sheep.gamegroup.util.CommonUtil;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.view.activity.GamemakeMoneyAct;
 import com.sheep.gamegroup.view.activity.TryMakeMoneyact;
 import com.sheep.gamegroup.view.adapter.TryMakeMoneyAdp;
 import com.sheep.jiuyan.samllsheep.R;
@@ -32,7 +32,6 @@ import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseFragment;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
-import org.afinal.simplecache.ACache;
 import org.afinal.simplecache.ApiKey;
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
@@ -46,6 +45,8 @@ import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.Unbinder;
 
+import static com.sheep.gamegroup.model.util.CacheInterceptor.DEFAULT_SAVE_TIME;
+
 /**
  * 试玩赚钱
  * Created by ljy on 2018/4/26.
@@ -62,9 +63,8 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
 
     @Inject
     TryMakeMoneyPresenter presenter;
-    private TryMakeMoneyact activity;
+    private Activity activity;
     private TryMakeMoneyAdp tryMakeMoneyAdp;
-    private int position = 0;
     private List<TaskAcceptedEty> acceptedEtyList = new ArrayList<>();
     private List<TaskReleaseEty> releaseEtyLists = new ArrayList<>();
     private List<TaskReleaseEty> releaseEtyListsBegin = new ArrayList<>();
@@ -79,13 +79,16 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     }
     private void notifyDataSetChanged(){
         checkAndInitView();
+        int position = 0;
+        if(!ListUtil.isEmpty(acceptedEtyList))
+            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, acceptedEtyList), position++);
+        DataUtil.getInstance().checkOtherList(acceptedEtyList, releaseEtyLists);
+        if(!ListUtil.isEmpty(releaseEtyLists))
+            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists), position++);
+        if(!ListUtil.isEmpty(releaseEtyListsBegin))
+            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.BEGIN_TASK, releaseEtyListsBegin), position);
         tryMakeMoneyAdp.refreshAdapter();
-        if(tryMakeMoneyAdp.isEmpty() && releaseEtyLists.isEmpty() && releaseEtyListsBegin.isEmpty()){
-
-            empty_view.setVisibility(View.VISIBLE);
-        }else {
-            empty_view.setVisibility(View.GONE);
-        }
+        CommonUtil.getInstance().updateEmptyView(empty_view, tryMakeMoneyAdp.isEmpty() && releaseEtyLists.isEmpty() && releaseEtyListsBegin.isEmpty());
         refresh.setRefreshing(false);
     }
     public static FgtTryMakeMoney newInstance(int type){
@@ -118,24 +121,24 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
 
     @Override
     public void onViewCreated() {
-
+        activity = getActivity();
         initView();
     }
-
-
-    //    @Override
-//    protected void initView(Bundle savedInstanceState) {
-//
-//        setContentView(R.layout.fgt_try_makemoney_layout);
-//        initView();
-//        initListener();
-//    }
+    private String task_type = "-1";
+    private boolean isGameTask = false;
     public void initView() {
-        activity = (TryMakeMoneyact) getActivity();
         if(activity == null){
             return;
         }
-        is_succession = activity.getIsSuccession();//0:一般任务 1:连续任务
+        if(activity instanceof TryMakeMoneyact) {//试玩任务、连续任务
+            is_succession = ((TryMakeMoneyact) activity).getIsSuccession();
+            task_type = "-1";
+            isGameTask = false;
+        } else if(activity instanceof GamemakeMoneyAct) {//游戏任务
+            is_succession = ((GamemakeMoneyAct) activity).getIsSuccession();
+            task_type = "1002,1003,1004";
+            isGameTask = true;
+        }
         EventBus.getDefault().register(this);
 //        ButterKnife.bind(this, mContentView);
         DaggerFgtTryMakeMoneyComponent.builder()
@@ -145,6 +148,9 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
                 .inject(FgtTryMakeMoney.this);
         recyclerview.setLayoutManager(new LinearLayoutManager(activity));
         tryMakeMoneyAdp = new TryMakeMoneyAdp(activity);
+        tryMakeMoneyAdp.addType(type);
+        tryMakeMoneyAdp.setIs_succession(is_succession);
+        tryMakeMoneyAdp.addPresenter(presenter);
         for (int i = 0; i < 3; i++) {
             tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
         }
@@ -186,50 +192,31 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     //强制刷新数据
     public void refreshData(){
         isFirstCache = false;
-        mInitData();
-    }
-    public void reFresh(){
-        isFirstCache = false;
         refresh.setRefreshing(true);
         mInitData();
     }
     public void mInitData() {
-        empty_view.setVisibility(View.GONE);
-        position = 0;
         type = 0;
-        releaseEtyLists.clear();
-        tryMakeMoneyAdp.clear();
-        tryMakeMoneyAdp.addType(type);
-        for (int i = 0; i < 3; i++) {
-            tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
-        }
-        tryMakeMoneyAdp.setIs_succession(is_succession);
 
         if(isFirstCache){
-            List<TaskAcceptedEty> cacheTaskAcceptedEtyList = CommonUtil.getInstance().getCacheList(ApiKey.new_run_task(is_succession), TaskAcceptedEty.class);
-            if (ListUtil.isEmpty(cacheTaskAcceptedEtyList)) {//本地无数据,从网络获取
-                CommonUtil.getInstance().getRunTask(presenter,is_succession);
+            List<TaskAcceptedEty> cacheTaskAcceptedEtyList;
+            if(isGameTask) {
+                cacheTaskAcceptedEtyList = DataUtil.getInstance().getGameTaskList();
+            } else {
+                cacheTaskAcceptedEtyList = DataUtil.getInstance().getTaskAcceptedTaskList(is_succession);
+            }
+            if (ListUtil.isEmpty(cacheTaskAcceptedEtyList)) {
+                acceptedEtyList.clear();
             } else {
-                //重新设置正在运行的任务的缓存时间
-                long saveTime = CommonUtil.getInstance().getSaveTime(TaskAcceptedEty.class.getSimpleName());
-                if(saveTime > 0)
-                    for (TaskAcceptedEty acceptedEty : cacheTaskAcceptedEtyList) {
-                        long newEndTime = acceptedEty.getEnd_time() - (System.currentTimeMillis() - saveTime) / 1000;
-                        if(newEndTime < 1){//有一个正在运行的任务的时间过期时,会刷新数据,不使用缓存
-                            mInitData();
-                            return;
-                        }
-                        acceptedEty.setEnd_time(newEndTime);//重置时间
-                    }
                 acceptedEtyList = cacheTaskAcceptedEtyList;
-                tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, cacheTaskAcceptedEtyList),0);
-                tryMakeMoneyAdp.addPresenter(presenter);
-                position ++;
-
-                getNetWork(type);
             }
+            getNetWork(type);
         } else {
-            CommonUtil.getInstance().getRunTask(presenter,is_succession);
+            if(isGameTask){
+                presenter.runGameTask();
+            } else {
+                presenter.returnTask(is_succession);
+            }
         }
     }
 
@@ -275,10 +262,14 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     }
 
     @Override
-    public void giveUpTaskSuccesView(Object o) {
+    public void giveUpTaskSuccesView(Object object) {
         G.showToast("取消任务成功");
         CommonUtil.getInstance().setTAskEnty(null);
-        reFresh();
+        if(object instanceof Integer)
+            DataUtil.getInstance().removeAcceptedTask((Integer) object);
+        else
+            DataUtil.getInstance().reInitAcceptedTaskList();
+        refreshData();
     }
 
     @Override
@@ -292,31 +283,16 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     }
 
     @Override
-    public void returnTaskTaskUpdataView(Object o) {
-
-        try{
-            BaseMessage baseMessage = (BaseMessage) o;
-            List<TaskAcceptedEty> taskAcceptedEty = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), TaskAcceptedEty.class);
-            if(taskAcceptedEty != null && taskAcceptedEty.size()>0){
-                //重新设置正在运行的任务的缓存时间
-                long minRunTime = 3600;//最多保存一个小时
-                CommonUtil.getInstance().setSaveTime(TaskAcceptedEty.class.getSimpleName());
-                for (TaskAcceptedEty acceptedEty : taskAcceptedEty) {
-                    minRunTime = Math.min(minRunTime, acceptedEty.getEnd_time());
-                }
-                CommonUtil.getInstance().resetCacheTime(ApiKey.new_run_task(is_succession), (int) minRunTime);
-
+    public void returnTaskTaskUpdataView(Object object) {
+        if(object instanceof BaseMessage) {
+            List<TaskAcceptedEty> taskAcceptedEty = ((BaseMessage) object).getDataList(TaskAcceptedEty.class);
+            if(ListUtil.isEmpty(taskAcceptedEty)) {
+                acceptedEtyList.clear();
+            } else {
                 acceptedEtyList = taskAcceptedEty;
-                tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, taskAcceptedEty),0);
-                tryMakeMoneyAdp.addPresenter(presenter);
-                position ++;
             }
-        }catch (Exception e){
-            e.printStackTrace();
         }
-        isFirstCache = false;//有新的正在运行的任务时,强制更新
         getNetWork(type);
-//        notifyDataSetChanged();
     }
 
     @Override
@@ -336,105 +312,57 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
             G.showToast(" 网络错误!");
         }
         getNetWork(type);
-//        notifyDataSetChanged();
     }
 
     /**
      *  获取已经发布任务
-     * @param o
+     * @param object
      */
     @Override
-    public void releaseTaskTaskUpdataView(Object o) {
-        try{
-            if(type == 0){
-                type = 1;
-
-
-                BaseMessage baseMessage = (BaseMessage) o;
-                List<TaskReleaseEty> releaseEtyList = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), TaskReleaseEty.class);
-                if(releaseEtyList != null){
-                    releaseEtyLists.addAll(releaseEtyList);
-                    tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists),position);
-                    position++;
-                }
-
-                getNetWork(type);
-            }else if(type == 1){
-                BaseMessage baseMessage = (BaseMessage) o;
-                List<TaskReleaseEty> releaseEtyList = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), TaskReleaseEty.class);
-                if(releaseEtyList != null){
-                    releaseEtyListsBegin.clear();
-                    releaseEtyListsBegin.addAll(releaseEtyList);
-                    tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.BEGIN_TASK, releaseEtyListsBegin),position);
-                    position++;
-                }
+    public void releaseTaskTaskUpdataView(Object object) {
+        if(object instanceof BaseMessage) {
+            List<TaskReleaseEty> releaseEtyList = ((BaseMessage) object).getDataList(TaskReleaseEty.class);
+            switch (type){
+                case 0:
+                    releaseEtyLists = releaseEtyList;
+                    break;
+                case 1:
+                    releaseEtyListsBegin = releaseEtyList;
+                    break;
             }
-
-        }catch (Exception e){
-            e.printStackTrace();
         }
-        notifyDataSetChanged();
-
+        loadReleaseOrNotifyAdapter();
     }
 
     @Override
     public void failReleaseTask2View(Object o) {
-
-
-        if(type == 0){
-            type = 1;
-            getNetWork(type);
+        loadReleaseOrNotifyAdapter();
+    }
+    private void loadReleaseOrNotifyAdapter(){
+        switch (type){
+            case 0://获取已经发布任务
+                if(ListUtil.isEmpty(releaseEtyLists)){//获取过数据,但是没有数据,直接保存空数据,以便下次不重复调接口
+                    DataUtil.getInstance().resetCacheTime(ApiKey.release_task(type, task_type, is_succession), DEFAULT_SAVE_TIME);
+                }
+                break;
+            case 1://即将开始的任务列表
+                if(ListUtil.isEmpty(releaseEtyListsBegin)){
+                    DataUtil.getInstance().resetCacheTime(ApiKey.release_task(type, task_type, is_succession), DEFAULT_SAVE_TIME);
+                }
+                break;
         }
         notifyDataSetChanged();
+        getNetWork(++type);
     }
 
     @Subscribe
     public void onEventMainThread(BigEvent event){
         switch (event.getEventTypes()){
             case ONFRESH_TRYMAKEMANY_PAGE:
-                reFresh();
                 break;
         }
     }
 
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-    }
-    /**
-     * 滚动到顶部
-     */
-    private boolean move;
-    private String string = "0";
-    private void goTop(){
-        final LinearLayoutManager manager = (LinearLayoutManager) recyclerview.getLayoutManager();
-        int fir = manager.findFirstVisibleItemPosition();
-        int end = manager.findLastVisibleItemPosition();
-        final int p = Integer.parseInt(string);
-        if (p <= fir) {
-            recyclerview.scrollToPosition(p);
-        } else if (p <= end) {
-            int top = recyclerview.getChildAt(p - fir).getTop();
-            recyclerview.scrollBy(0, top);
-        } else {
-            recyclerview.scrollToPosition(p);    //先让当前view滚动到列表内
-            move = true;
-        }
-        recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener()
-        {
-            @Override
-            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
-                super.onScrolled(recyclerView, dx, dy);
-                if (move) {
-                    move = false;
-                    int n = p - manager.findFirstVisibleItemPosition();
-                    if (n >= 0 && n < recyclerView.getChildCount()) {
-                        recyclerView.scrollBy(0, recyclerView.getChildAt(n).getTop()); //滚动到顶部
-                    }
-                }
-            }
-        });
-    }
 
     @Override
     public void onStop() {
@@ -471,32 +399,33 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
      */
     private void getNetWork(int type){
         if(type > 1){
-            notifyDataSetChanged();
             return;
         }
         if(isFirstCache){
-            List<TaskReleaseEty> cacheTaskReleaseEtyList = CommonUtil.getInstance().getCacheList(ApiKey.release_task(type, is_succession), TaskReleaseEty.class);
-
-            if(ListUtil.isEmpty(cacheTaskReleaseEtyList)) {//可以领取的任务
-                isFirstCache = false;
-                getNetWork(type);
-            } else{
-//                //删除缓存中已经存在的任务
-//                List<TaskReleaseEty> removeList = ListUtil.emptyList();
-//                for (TaskAcceptedEty taskAcceptedEty : acceptedEtyList) {
-//                    for (TaskReleaseEty taskReleaseEty : cacheTaskReleaseEtyList) {
-//                        if(taskAcceptedEty.getRelease_task_id() == taskReleaseEty.getId()){
-//                            removeList.add(taskReleaseEty);
-//                        }
-//                    }
-//                }
-//                cacheTaskReleaseEtyList.removeAll(removeList);
-                releaseEtyLists.addAll(cacheTaskReleaseEtyList);
-                tryMakeMoneyAdp.add(RecyleObj.make(type == 0 ? RecyleType.RELEASE_TASK : RecyleType.BEGIN_TASK, releaseEtyLists), position);
-                position++;
-
-                type++;
-                getNetWork(type);
+            List<TaskReleaseEty> cacheTaskReleaseEtyList = DataUtil.getInstance().getCacheList(ApiKey.release_task(type, task_type, is_succession), TaskReleaseEty.class);
+            switch (type){
+                case 0:
+                    if(cacheTaskReleaseEtyList == null) {
+                        releaseEtyLists.clear();
+                        isFirstCache = false;//没有缓存
+                        getNetWork(type);
+                    } else {
+                        releaseEtyLists = cacheTaskReleaseEtyList;
+                        notifyDataSetChanged();
+                        getNetWork(++type);
+                    }
+                    break;
+                case 1:
+                    if(cacheTaskReleaseEtyList == null) {
+                        releaseEtyListsBegin.clear();
+                        isFirstCache = false;//没有缓存
+                        getNetWork(type);
+                    } else {
+                        releaseEtyListsBegin = cacheTaskReleaseEtyList;
+                        notifyDataSetChanged();
+                        getNetWork(++type);
+                    }
+                    break;
             }
         } else {
             RequestParameEty parameEty = new RequestParameEty();
@@ -508,7 +437,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
                                     0,
                                     0,
                                     type,
-                                    -1 + "",
+                                    task_type,
                                     is_succession));
             presenter.releaseTask(parameEty);
         }

+ 11 - 1
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -14,6 +14,7 @@ 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.ChannelContent;
 import com.sheep.gamegroup.util.ConnectAddress;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.LogUtil;
@@ -45,6 +46,15 @@ public class SheepApp extends BaseApplication {
     private boolean isShowQB;
     private String packgeName;
     private boolean isInitMidong = false;
+    private boolean isShowMidong = false;
+
+    public boolean isShowMidong() {
+        return isShowMidong;
+    }
+
+    public void setShowMidong(boolean showMidong) {
+        isShowMidong = showMidong;
+    }
 
     public boolean isInitMidong() {
         return isInitMidong;
@@ -100,7 +110,7 @@ public class SheepApp extends BaseApplication {
             connectAddress = ConnectAddress.sheep.getDefultConnectAddress();
             registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
             initNet();
-
+            ChannelContent.getInstance().initChannelContent(this);
         }
     }
 

+ 4 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/service/DownloadService.java

@@ -52,6 +52,7 @@ public class DownloadService extends Service{
     @Download.onTaskStop void taskStop(DownloadTask task) {
         LogUtil.println("DownloadService", "taskStop", task.getKey(), task.getTaskName());
         mDownloadTaskService.setDownloadTaskStatus(task.getKey(), DownloadTaskService.STATUS_PAUSE);
+        EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.DOWNLOAD_STOP).setData(task));
     }
 
     @Download.onNoSupportBreakPoint void onNoSupportBreakPoint(DownloadTask task) {
@@ -60,11 +61,13 @@ public class DownloadService extends Service{
     @Download.onTaskCancel void taskCancel(DownloadTask task) {
         LogUtil.println("DownloadService", "taskCancel", task.getKey(), task.getTaskName());
         mDownloadTaskService.deleteDownloadTaskByDownloadUrl(task.getKey());
+        EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.DOWNLOAD_CANCEL).setData(task));
     }
 
     @Download.onTaskFail void taskFail(DownloadTask task) {
         LogUtil.println("DownloadService", "taskFail", task.getKey(), task.getTaskName());
         mDownloadTaskService.setDownloadTaskStatus(task.getKey(), DownloadTaskService.STATUS_FAIL);
+        EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.DOWNLOAD_FAIL).setData(task));
         //空间不足,弹框提示
         try{
             if (0 <= task.getFileSize() && task.getFileSize() > HelperUtils.getFreeSpaceB()) {
@@ -79,6 +82,7 @@ public class DownloadService extends Service{
         LogUtil.println("DownloadService", "taskComplete", task.getKey(), task.getTaskName());
         mDownloadTaskService.setDownloadTaskFinish(task.getKey(), task.getDownloadPath());
         ApkUtils.installApk(getApplicationContext(), task.getDownloadPath());
+        EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.DOWNLOAD_COMPLETE).setData(task));
     }
     @Nullable
     @Override

+ 1 - 16
app/src/main/java/com/sheep/jiuyan/samllsheep/service/FloatService.java

@@ -1,9 +1,7 @@
 package com.sheep.jiuyan.samllsheep.service;
 
-import android.app.ActivityManager;
 import android.app.Service;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.graphics.PixelFormat;
 import android.os.Build;
@@ -11,8 +9,6 @@ import android.os.Handler;
 import android.os.IBinder;
 import android.os.Looper;
 import android.os.Message;
-import android.provider.Settings;
-import android.support.v7.app.AlertDialog;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.Gravity;
@@ -20,29 +16,18 @@ import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.WindowManager;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import com.sheep.gamegroup.model.entity.AppUsage;
-import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.util.AutoTaskListUtil;
 import com.sheep.gamegroup.usage.AppUsageManager;
-import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.TimeUtil;
-import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.DeviceInfo;
-import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 
-import java.util.HashMap;
-import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.TimeUnit;
 
@@ -76,7 +61,7 @@ public class FloatService extends Service {
                         public void call(Long count) {
                             LogUtil.println("FloatService", "count", "=", count);
 
-                            if (!TextUtils.isEmpty(SpUtils.getOpenId(SheepApp.getInstance())) &&!AutoTaskListUtil.getInstance().isEmpty()) {//登录情况下并且有应用自动审核任务才会记录
+                            if (!TextUtils.isEmpty(SpUtils.getToken(SheepApp.getInstance())) &&!AutoTaskListUtil.getInstance().isEmpty()) {//登录情况下并且有应用自动审核任务才会记录
                                 if(count % 60 == 0){
                                     AppUsageManager.getInstance().tryOpenLookAppUsageStatsPermisson(false);
                                 }

+ 0 - 186
app/src/main/java/com/sheep/jiuyan/samllsheep/service/MonitorAppService.java

@@ -1,186 +0,0 @@
-package com.sheep.jiuyan.samllsheep.service;
-
-import android.accessibilityservice.AccessibilityService;
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Build;
-import android.provider.Settings;
-import android.text.TextUtils;
-import android.view.accessibility.AccessibilityEvent;
-
-import com.sheep.gamegroup.model.entity.AppRecord;
-import com.sheep.gamegroup.model.util.AutoTaskListUtil;
-import com.sheep.gamegroup.util.ListUtil;
-import com.sheep.gamegroup.util.LogUtil;
-import com.sheep.gamegroup.util.MyDbManager;
-import com.sheep.gamegroup.util.SysAppUtil;
-import com.sheep.jiuyan.samllsheep.SheepApp;
-
-import java.util.List;
-import java.util.Locale;
-
-/**
- * Created by realicing on 2018/5/4.
- * realicing@sina.com
- */
-public class MonitorAppService extends AccessibilityService {
-    @Override
-    public void onAccessibilityEvent(AccessibilityEvent accessibilityEvent) {
-        // 此方法是在主线程中回调过来的,所以消息是阻塞执行的
-        // 获取包名
-        CharSequence packageName = accessibilityEvent.getPackageName();
-        CharSequence className = accessibilityEvent.getClassName();
-        int eventType = accessibilityEvent.getEventType();
-        List<CharSequence> textList = accessibilityEvent.getText();
-        LogUtil.println("MonitorAppService", "onAccessibilityEvent", eventType,"pkgName:", packageName, "className:", className, "source:", ListUtil.getIndex(textList, 0));
-        if(AutoTaskListUtil.getInstance().isEmpty()) {//当前没有应用自动审核任务时不操作数据库
-//            kfDisableSelf();
-            return;
-        }
-        if(packageName == null){
-            return;
-        }
-        switch (eventType) {
-            case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:
-
-                long curTime = System.currentTimeMillis();
-                AppRecord appRecord = new AppRecord();
-                appRecord.setType_id(eventType);
-                if(className != null)
-                    appRecord.setClassName(className.toString());
-                appRecord.setPackageName(packageName.toString());
-                if(ListUtil.getIndex(textList, 0) != null)
-                    appRecord.setTag(textList.get(0).toString());
-
-                AppRecord lastAppRecord = AutoTaskListUtil.getInstance().getLastAppRecord();
-                long lastTime = AutoTaskListUtil.getInstance().getLastTime();
-                if(lastAppRecord != null && lastTime != 0)
-                    lastAppRecord.setTime(lastAppRecord.getTime() + curTime - lastTime);
-                if(lastAppRecord != null && AutoTaskListUtil.getInstance().hasTask(lastAppRecord)) {
-                    MyDbManager.getInstance().saveOrUpdate(lastAppRecord);
-                    LogUtil.println("MonitorAppService", "MyDbManager", "saveOrUpdate", "lastAppRecord", lastAppRecord.getPackageName(), lastAppRecord.getTime());
-                }
-
-                AutoTaskListUtil.getInstance().setLastTime(curTime);
-                AutoTaskListUtil.getInstance().setLastAppRecord(appRecord);
-                break;
-//            case AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED:
-//                System.out.println("MonitorAppService TYPE_WINDOW_CONTENT_CHANGED: " + " packageName: " + packageName + " source: " + ListUtil.getIndex(textList, 0));
-//                break;
-//            case AccessibilityEvent.TYPE_VIEW_CLICKED:
-//                System.out.println("MonitorAppService TYPE_VIEW_CLICKED: " + " pkgName: " + packageName + " className: " + className  + " source: " + ListUtil.getIndex(textList, 0));
-//                break;
-        }
-    }
-
-    private void kfDisableSelf() {
-        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
-            disableSelf();
-        } else {
-            stopSelf();
-        }
-    }
-
-    @Override
-    public int onStartCommand(Intent intent, int flags, int startId) {
-        AutoTaskListUtil.getInstance().clearAlertDialog();
-        return super.onStartCommand(intent, flags, START_STICKY);
-    }
-
-    @Override
-    public void onInterrupt() {
-//        Jump2View.getInstance().startAccessibility(getApplicationContext());
-        AutoTaskListUtil.getInstance().clearAlertDialog();
-        LogUtil.println("MonitorAppService onInterrupt");
-    }
-
-    @Override
-    public boolean onUnbind(Intent intent) {
-//        Jump2View.getInstance().startAccessibility(getApplicationContext());
-        AutoTaskListUtil.getInstance().clearAlertDialog();
-        LogUtil.println("MonitorAppService onUnbind");
-        return super.onUnbind(intent);
-    }
-
-    public static void tryCloseAccessibility(Activity activity) {
-        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
-            if (!Settings.System.canWrite(SheepApp.getInstance())) {
-                Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:" + SheepApp.getInstance().getPackageName()));
-                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                activity.startActivityForResult(intent, -1);
-            } else {
-//                有了权限,你要做什么呢?具体的动作
-                try {
-                    closeAccessibility();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        } else {
-            try {
-                closeAccessibility();
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-    }
-    public static void closeService() {
-        //这里是包名+辅助功能类名
-        String cmd1 = String.format(Locale.CHINA, "settings put secure %s %s", Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, getId2());
-
-        String cmd2 = String.format(Locale.CHINA, "settings put secure %s 1", Settings.Secure.ACCESSIBILITY_ENABLED);
-        SysAppUtil.execShell(cmd1);
-        SysAppUtil.execShell(cmd2);
-    }
-
-
-    public static void closeAccessibility() {
-        String service = SheepApp.getInstance().getPackageName() + "/" + MonitorAppService.class.getCanonicalName();
-        // 这个key保存已经辅助服务的组件名列表,以“:”隔开,要关闭自己的组件,只要从这个key的值中移除该字符串
-        Settings.Secure.putString(SheepApp.getInstance().getApplicationContext().getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, service);//com.sheep.jiuyan.samllsheep/com.sheep.jiuyan.samllsheep.service.MonitorAppService
-        // 这个key控制辅助服务的开关
-        Settings.Secure.putInt(SheepApp.getInstance().getApplicationContext().getContentResolver(), Settings.Secure.ACCESSIBILITY_ENABLED, 0);
-    }
-    private static String getId(){
-        String pacakgeName = SheepApp.getInstance().getPackageName();
-        return pacakgeName+"/"+MonitorAppService.class.getCanonicalName().replace(pacakgeName, "");
-    }
-    private static String getId2(){
-        String pacakgeName = SheepApp.getInstance().getPackageName();
-        return pacakgeName+"/"+MonitorAppService.class.getCanonicalName();
-    }
-    private static boolean isThisService(String id){
-        return getId2().equalsIgnoreCase(id) || getId().equalsIgnoreCase(id);
-    }
-
-    public static boolean isAccessibilitySettingsOn(Context mContext) {
-        int accessibilityEnabled = 0;
-        // com.z.buildingaccessibilityservices/android.accessibilityservice.AccessibilityService
-        try {
-            accessibilityEnabled = Settings.Secure.getInt(mContext.getApplicationContext().getContentResolver(),
-                    android.provider.Settings.Secure.ACCESSIBILITY_ENABLED);
-        } catch (Settings.SettingNotFoundException ignored) {
-        }
-        TextUtils.SimpleStringSplitter mStringColonSplitter = new TextUtils.SimpleStringSplitter(':');
-
-        if (accessibilityEnabled == 1) {
-            String settingValue = Settings.Secure.getString(mContext.getApplicationContext().getContentResolver(),
-                    Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
-            LogUtil.println("MonitorAppService","isAccessibilitySettingsOn", "getString",settingValue);
-            //com.sheep.jiuyan.samllsheep/com.sheep.jiuyan.samllsheep.service.MonitorAppService
-            if (settingValue != null) {
-                mStringColonSplitter.setString(settingValue);
-                while (mStringColonSplitter.hasNext()) {
-                    String accessibilityService = mStringColonSplitter.next();
-
-                    if (isThisService(accessibilityService)) {
-                        return true;
-                    }
-                }
-            }
-        }
-        return false;
-    }
-}

+ 2 - 97
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/SpUtils.java

@@ -2,7 +2,6 @@ package com.sheep.jiuyan.samllsheep.utils;
 
 import android.content.Context;
 import android.content.SharedPreferences;
-import android.text.TextUtils;
 
 import com.sheep.jiuyan.samllsheep.SheepApp;
 
@@ -12,18 +11,12 @@ import com.sheep.jiuyan.samllsheep.SheepApp;
 
 public class SpUtils {
 
-    public static boolean isLogin(Context context) {
-        SharedPreferences user = context.getSharedPreferences("user", Context.MODE_PRIVATE);
-        String wxOpenId = user.getString("wx_openId", "");
-        return !TextUtils.isEmpty(wxOpenId);
-    }
-
-    public static String getOpenId(Context context) {
+    public static String getToken(Context context) {
         SharedPreferences user = context.getSharedPreferences("user", Context.MODE_PRIVATE);
         return user.getString("wx_openId", "");
     }
 
-    public static void login(Context context, String openId) {
+    public static void saveToken(Context context, String openId) {
         SharedPreferences user = context.getSharedPreferences("user", Context.MODE_PRIVATE);
         SharedPreferences.Editor editor = user.edit();
         editor.putString("wx_openId", openId);
@@ -31,79 +24,6 @@ public class SpUtils {
     }
 
 
-    public static void setImagePath(Context context, String vaule) {
-        SharedPreferences user = context.getSharedPreferences("user", Context.MODE_PRIVATE);
-        SharedPreferences.Editor editor = user.edit();
-        editor.putString("imagepath", vaule);
-        editor.apply();
-    }
-
-
-    public static String getImagePath(Context context) {
-        SharedPreferences user = context.getSharedPreferences("user", Context.MODE_PRIVATE);
-        return user.getString("imagepath", "");
-    }
-
-
-
-
-
-    public static void saveAppToken(Context context, String vaule) {
-        SharedPreferences user = context.getSharedPreferences("user", Context.MODE_PRIVATE);
-        SharedPreferences.Editor editor = user.edit();
-        editor.putString("apptoken", vaule);
-        editor.apply();
-    }
-
-
-    public static String getAppToken(Context context) {
-        SharedPreferences user = context.getSharedPreferences("user", Context.MODE_PRIVATE);
-        return user.getString("apptoken", "");
-
-    }
-    public static void savePhone(Context context, String vaule) {
-        SharedPreferences user = context.getSharedPreferences("phone", Context.MODE_PRIVATE);
-        SharedPreferences.Editor editor = user.edit();
-        editor.putString("phone", vaule);
-        editor.apply();
-    }
-
-
-    public static String getPhone(Context context) {
-        SharedPreferences user = context.getSharedPreferences("phone", Context.MODE_PRIVATE);
-        return user.getString("phone", "");
-    }
-    public static void saveWeixin(Context context, String vaule) {
-        SharedPreferences user = context.getSharedPreferences("weixin_name", Context.MODE_PRIVATE);
-        SharedPreferences.Editor editor = user.edit();
-        editor.putString("weixin_name", vaule);
-        editor.apply();
-    }
-
-
-    public static String getWeixin(Context context) {
-        SharedPreferences user = context.getSharedPreferences("weixin_name", Context.MODE_PRIVATE);
-        return user.getString("weixin_name", "");
-    }
-
-    /**
-     * 点击事件 记录
-     * @param context
-     * @param vaule
-     */
-    public static void saveClick(Context context, boolean vaule) {
-        SharedPreferences user = context.getSharedPreferences("btn_download_click", Context.MODE_PRIVATE);
-        SharedPreferences.Editor editor = user.edit();
-        editor.putBoolean("click", vaule);
-        editor.apply();
-    }
-
-
-    public static boolean getClick(Context context) {
-        SharedPreferences user = context.getSharedPreferences("btn_download_click", Context.MODE_PRIVATE);
-        return user.getBoolean("click", false);
-    }
-
     /**
      * 点击事件 记录,是否在提示
      * @param context
@@ -160,19 +80,4 @@ public class SpUtils {
         SharedPreferences user = SheepApp.getInstance().getSharedPreferences("save_data", Context.MODE_PRIVATE);
         return user.getString("ignore_md5", "");
     }
-
-    /**
-     * 保存代理显示状态
-     * @param vaule  1:显示 0:不显示
-     */
-    public static void saveAgencyState(int vaule) {
-        SharedPreferences user = SheepApp.getInstance().getSharedPreferences("agency_state", Context.MODE_PRIVATE);
-        SharedPreferences.Editor editor = user.edit();
-        editor.putInt("agency_state_value", vaule);
-        editor.apply();
-    }
-    public static int getAgencyState() {
-        SharedPreferences user = SheepApp.getInstance().getSharedPreferences("agency_state", Context.MODE_PRIVATE);
-        return user.getInt("agency_state_value", 0);
-    }
 }

+ 27 - 2
app/src/main/java/org/afinal/simplecache/ApiKey.java

@@ -30,14 +30,19 @@ public class ApiKey {
     public static final String slideshow = "app/slideshow?platform=1";
     //home_list
     public static final String home_list = "app/home_list";
+    //各种url配置
+    public static final String url = "app/url/";
     //用户信息
     public static final String get_info = "app/user/get_info/";
     //award_detail
     public static final String award_detail = "app/user/award_detail?page=0&per_page=100";
+    //游戏任务中的我的游戏
+    public static final String my_games = "app/game_consumption/my_games?page=1&per_page=100";
     //首页获取所有发布的热门任务(试玩任务、游戏任务、连续任务)
     public static final String release_task = "app/release_task?page=1&per_page=100&platform=1&is_hot=1&is_recommend=0&about_to_begin=0&task_type=-1&is_succession=3";
-    public static String release_task(int type, int is_succession){
-        return String.format(Locale.CHINA, "app/release_task?page=1&per_page=100&platform=1&is_hot=0&is_recommend=0&about_to_begin=%d&task_type=-1&is_succession=%d", type, is_succession);
+    public static String release_task(int type, String task_type, int is_succession){
+        task_type = task_type.replaceAll(",", "%2C");
+        return String.format(Locale.CHINA, "app/release_task?page=1&per_page=100&platform=1&is_hot=0&is_recommend=0&about_to_begin=%d&task_type=%s&is_succession=%d", type, task_type, is_succession);
     }
     //获取正在运行的任务(试玩任务、游戏任务、连续任务)
     public static String new_run_task(int is_succession){
@@ -49,9 +54,29 @@ public class ApiKey {
     public static String articles(int tag_id){
         return "app/find/articles/list?page=1&per_page=100&tag_id="+tag_id;
     }
+    //发现模块资讯
+    public static String articlesItem(int id){
+        return "app/find/articles?id="+id;
+    }
+    //发现模块游戏或应用详情
+    public static String applications(int id){
+        return "app/find/applications?id="+id;
+    }
+    //发现模块游戏或应用详情中的分数
+    public static String score_num(int id){
+        return "app/find/applications/score_num?id="+id;
+    }
+    //发现模块游戏或应用详情中我的评分
+    public static String my_score(int id){
+        return "app/find/applications/my_score?id="+id;
+    }
     //广告
     public static String advertisements(int type){
         return "app/advertising/advertisements?type="+type;
     }
+    //获取任务详情
+    public static String releaseTaskDesc(int releaseTaskId){
+        return String.format(Locale.CHINA, "app/release_task/%d/desc", releaseTaskId);
+    }
 
 }

BIN
app/src/main/res/drawable-xxhdpi/splash_bg_img.webp


+ 4 - 33
app/src/main/res/layout/act_game_make_money.xml

@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical"
@@ -11,12 +10,12 @@
 
     <LinearLayout
         android:id="@+id/show_flow_layout"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="40dp"
         android:paddingStart="@dimen/content_padding_10"
         android:paddingEnd="@dimen/content_padding_10"
         android:layout_gravity="center_horizontal"
-        android:gravity="center_vertical"
+        android:gravity="center"
         android:orientation="horizontal"
         android:visibility="visible">
         <TextView
@@ -52,38 +51,10 @@
             style="@style/style_ash_tv"
             android:text="领取奖励"/>
     </LinearLayout>
-    <LinearLayout
-        android:id="@+id/task_gridview_layout"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:paddingLeft="@dimen/content_padding_3"
-        android:paddingRight="@dimen/content_padding"
-        android:paddingBottom="@dimen/content_padding_small"
-        android:paddingTop="@dimen/content_padding_small"
-        android:background="@color/white"
-        android:visibility="gone">
-        <com.sheep.gamegroup.util.MyGridview
-            android:id="@+id/tab_gridview"
-            android:layout_width="0dp"
-            android:layout_weight="1"
-            android:layout_height="wrap_content"
-            android:numColumns="4"
-            android:scrollbars="none"
-            android:listSelector="@android:color/transparent"
-            android:gravity="center_horizontal"/>
-
-        <ImageView
-            android:id="@+id/select_tab_iv"
-            android:layout_width="@dimen/view_size_30"
-            android:layout_height="@dimen/view_size_30"
-            android:padding="@dimen/content_padding_small"
-            android:src="@mipmap/arrow_down" />
-
-    </LinearLayout>
     <android.support.design.widget.TabLayout
         android:id="@+id/indicator"
-        style="@style/style_tab"/>
+        style="@style/style_tab"
+        android:layout_marginTop="-7dp"/>
 
     <android.support.v4.view.ViewPager
         android:id="@+id/pager"

+ 2 - 2
app/src/main/res/layout/empty_view.xml

@@ -14,7 +14,7 @@
         android:background="@color/white"
         android:gravity="center"
         android:scaleType="centerInside"
-        android:src="@mipmap/wushuju"
+        android:src="@drawable/loading_01"
         android:visibility="visible" />
 
     <TextView
@@ -25,5 +25,5 @@
         android:layout_below="@id/img_list_empty"
         android:layout_centerHorizontal="true"
         android:layout_marginTop="@dimen/content_padding_big"
-        android:text="@string/wushuju" />
+        android:text="@string/loading" />
 </RelativeLayout>

+ 4 - 2
app/src/main/res/layout/fgt_try_makemoney_layout.xml

@@ -2,6 +2,9 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:paddingBottom="@dimen/content_padding_10"
+    android:paddingStart="@dimen/content_padding_10"
+    android:paddingEnd="@dimen/content_padding_10"
     android:background="@color/bg_gray">
 
     <include
@@ -12,8 +15,7 @@
     <com.sheep.gamegroup.view.customview.SheepmSwipeRefreshLayout
         android:id="@+id/refresh"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_margin="@dimen/content_padding_10">
+        android:layout_height="wrap_content">
 
         <android.support.v7.widget.RecyclerView
             android:id="@+id/recyclerview"

+ 84 - 75
app/src/main/res/layout/find_item.xml

@@ -1,99 +1,108 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_marginEnd="@dimen/content_padding"
-    android:layout_marginStart="@dimen/content_padding"
-    android:background="@drawable/x_shap_shadow_bg_rectgangle_white"
-    android:orientation="vertical"
-    android:paddingTop="14dp"
-    android:paddingStart="@dimen/content_padding"
-    android:paddingEnd="@dimen/content_padding"
-    android:paddingBottom="15dp">
+    android:orientation="vertical">
+
     <View
         android:id="@+id/padding"
         android:layout_width="match_parent"
-        android:layout_height="@dimen/content_padding_10"/>
+        android:layout_height="@dimen/content_padding_10" />
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:gravity="center_vertical"
-        android:orientation="horizontal">
-
-        <TextView
-            android:id="@+id/find_item_name"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:text="@string/app_name"
-            android:textColor="@color/black_6_3"
-            android:textSize="15sp" />
+        android:layout_marginEnd="@dimen/content_padding"
+        android:layout_marginStart="@dimen/content_padding"
+        android:background="@drawable/x_shap_shadow_bg_rectgangle_white"
+        android:orientation="vertical"
+        android:paddingBottom="15dp"
+        android:paddingEnd="@dimen/content_padding"
+        android:paddingStart="@dimen/content_padding"
+        android:paddingTop="14dp">
 
-        <com.kfzs.android.view.tag.TagFlowLayout
-            android:id="@+id/find_item_tags"
-            android:layout_width="wrap_content"
+        <LinearLayout
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginStart="@dimen/dp_10" />
-    </LinearLayout>
-
-    <TextView
-        android:id="@+id/find_item_time"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="5dp"
-        android:text="@string/app_name"
-        android:textColor="#9B9B9B"
-        android:textSize="11sp" />
-
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
 
-    <ImageView
-        android:id="@+id/find_item_iv"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="@dimen/dp_10"
-        android:scaleType="fitXY"
-        android:adjustViewBounds="true"
-        android:src="@mipmap/icon" />
+            <TextView
+                android:id="@+id/find_item_name"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="@string/app_name"
+                android:textColor="@color/black_6_3"
+                android:textSize="15sp" />
 
-    <android.support.constraint.ConstraintLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="15dp">
+            <com.kfzs.android.view.tag.TagFlowLayout
+                android:id="@+id/find_item_tags"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/dp_10" />
+        </LinearLayout>
 
         <TextView
-            android:id="@+id/find_item_des"
-            android:layout_width="0dp"
+            android:id="@+id/find_item_time"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintEnd_toStartOf="@+id/find_item_download"
-            android:maxLines="2"
-            android:ellipsize="end"
+            android:layout_marginTop="5dp"
             android:text="@string/app_name"
-            android:textColor="#646464"
-            android:textSize="14sp" />
-        <TextView
-            android:id="@+id/find_item_download"
-            style="@style/style_button_find"
-            android:layout_marginStart="5dp"
-            app:layout_constraintStart_toEndOf="@+id/find_item_des"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent"
-            android:text="下载游戏" />
+            android:textColor="#9B9B9B"
+            android:textSize="11sp" />
+
 
-<!--        <TextView
-            android:id="@+id/find_item_pf_label"
+        <ImageView
+            android:id="@+id/find_item_iv"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:layout_constraintTop_toBottomOf="@+id/find_item_des"
-            android:layout_marginTop="8dp"
-            android:text="评分:8.9"
-            android:textColor="#646464"
-            android:textSize="14sp" />-->
+            android:layout_marginTop="@dimen/dp_10"
+            android:adjustViewBounds="true"
+            android:scaleType="fitXY"
+            android:src="@mipmap/icon" />
 
-    </android.support.constraint.ConstraintLayout>
+        <android.support.constraint.ConstraintLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp">
+
+            <TextView
+                android:id="@+id/find_item_des"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:ellipsize="end"
+                android:maxLines="2"
+                android:text="@string/app_name"
+                android:textColor="#646464"
+                android:textSize="14sp"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintEnd_toStartOf="@+id/find_item_download"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent" />
+
+            <TextView
+                android:id="@+id/find_item_download"
+                style="@style/style_button_find"
+                android:layout_marginStart="5dp"
+                android:text="下载游戏"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toEndOf="@+id/find_item_des"
+                app:layout_constraintTop_toTopOf="parent" />
 
+            <!--        <TextView
+                        android:id="@+id/find_item_pf_label"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        app:layout_constraintTop_toBottomOf="@+id/find_item_des"
+                        android:layout_marginTop="8dp"
+                        android:text="评分:8.9"
+                        android:textColor="#646464"
+                        android:textSize="14sp" />-->
+
+        </android.support.constraint.ConstraintLayout>
+
+    </LinearLayout>
 </LinearLayout>

+ 4 - 2
app/src/main/res/layout/task_detail_layout.xml

@@ -18,7 +18,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:orientation="vertical">
-        <ScrollView
+        <android.support.v4.widget.NestedScrollView
             android:layout_width="match_parent"
             android:layout_height="0dp"
             android:layout_weight="1"
@@ -26,6 +26,8 @@
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
+                android:focusable="true"
+                android:focusableInTouchMode="true"
                 android:orientation="vertical">
 
                 <RelativeLayout
@@ -335,7 +337,7 @@
                 <include
                     layout="@layout/taskdetail_item_supplement_explain"/>
             </LinearLayout>
-        </ScrollView>
+        </android.support.v4.widget.NestedScrollView>
 
 
         <LinearLayout

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

@@ -26,7 +26,7 @@
         <android.support.v4.view.ViewPager
             android:id="@+id/pager"
             android:layout_width="match_parent"
-            android:layout_marginTop="27dp"
+            android:layout_marginTop="40dp"
             android:layout_height="match_parent"/>
         <LinearLayout
             android:id="@+id/show_flow_layout"

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -54,6 +54,7 @@
     <string name="warm_prompt_content">游戏必须是在小绵羊平台下载的游戏,且游戏账号是新注册的,否者任务奖励无法使用。</string>
     <string name="warm_prompt_content_notice">注意:用户若删除游戏后,系统自动检测让其下载安装游戏。</string>
     <string name="get_game_task_success_dialog">%1$s账号:%2$s \n  密码请在个人中心查看\n  注意:登陆后请及时修改密码哟</string>
+    <string name="get_xiaomi_game_success_dialog">账号:%1$s \n  密码:%2$s \n </string>
 
 
     <string name="accessibility_description">需要权限判断任务是否成功</string>

+ 2 - 2
gradle.properties

@@ -17,8 +17,8 @@
 # org.gradle.parallel=true
 #android.injected.build.model.only.versioned = 3
 
-VERSION_NAME=2.9.0
-VERSION_CODE=2009000
+VERSION_NAME=2.9.5
+VERSION_CODE=2009005
 ANDROID_COMPILE_SDK_VERSION=27
 ANDROID_BUILD_TOOLS_VERSION=27.0.2
 ANDROID_MIN_SDK_VERSION=18