ソースを参照

Merge branch '2.8' into sheep2.0

liujiangyao 7 年 前
コミット
345eaed942
共有28 個のファイルを変更した443 個の追加695 個の削除を含む
  1. 0 0
      app/src/developSheeptest/res/values/strings.xml
  2. 0 4
      app/src/main/AndroidManifest.xml
  3. 53 37
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFind.java
  4. 8 10
      app/src/main/java/com/kfzs/duanduan/fragment/FgtFindChild.java
  5. 66 97
      app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java
  6. 16 3
      app/src/main/java/com/sheep/gamegroup/heler/TaskHelper.java
  7. 2 2
      app/src/main/java/com/sheep/gamegroup/model/entity/FindApp.java
  8. 7 0
      app/src/main/java/com/sheep/gamegroup/model/entity/GameAccountEntity.java
  9. 3 3
      app/src/main/java/com/sheep/gamegroup/view/activity/XiaomiGameEntity.java
  10. 14 5
      app/src/main/java/com/sheep/gamegroup/model/util/CacheInterceptor.java
  11. 1 1
      app/src/main/java/com/sheep/gamegroup/presenter/TryMakeMoneyContract.java
  12. 7 2
      app/src/main/java/com/sheep/gamegroup/presenter/TryMakeMoneyPresenter.java
  13. 1 7
      app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java
  14. 16 246
      app/src/main/java/com/sheep/gamegroup/util/DataUtil.java
  15. 7 0
      app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java
  16. 50 45
      app/src/main/java/com/sheep/gamegroup/view/activity/ActFindGame.java
  17. 37 32
      app/src/main/java/com/sheep/gamegroup/view/activity/ActFindInformation.java
  18. 1 13
      app/src/main/java/com/sheep/gamegroup/view/activity/ActSearchGame.java
  19. 2 30
      app/src/main/java/com/sheep/gamegroup/view/activity/ActXiaomiGame.java
  20. 0 13
      app/src/main/java/com/sheep/gamegroup/view/activity/SingTask.java
  21. 35 50
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java
  22. 3 6
      app/src/main/java/com/sheep/gamegroup/view/activity/TaskListAct.java
  23. 1 1
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGameAccount.java
  24. 19 3
      app/src/main/java/com/sheep/gamegroup/view/dialog/DialogModifyAccount.java
  25. 81 81
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtTryMakeMoney.java
  26. 8 2
      app/src/main/java/org/afinal/simplecache/ApiKey.java
  27. 3 0
      app/src/main/res/layout/dialog_modify_account.xml
  28. 2 2
      gradle.properties

app/src/sheeptest/res/values/strings.xml → app/src/developSheeptest/res/values/strings.xml


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

@@ -235,10 +235,6 @@
             android:screenOrientation="portrait" />
 
         <activity
-            android:name="com.sheep.gamegroup.view.activity.AccountAndSecurityAct"
-            android:screenOrientation="portrait" />
-
-        <activity
             android:name="com.kfzs.duanduan.ActWeb"
             android:hardwareAccelerated="true"
             android:screenOrientation="portrait" />

+ 53 - 37
app/src/main/java/com/kfzs/duanduan/fragment/FgtFind.java

@@ -40,6 +40,7 @@ public class FgtFind extends BaseCompatFragment {
         setContentView(R.layout.fgt_find);
         activity = getActivity();
         ButterKnife.bind(this, mContentView);
+        initView();
         initData();
     }
 
@@ -49,44 +50,9 @@ public class FgtFind extends BaseCompatFragment {
     ViewPager pager;
 
     private GiftpackListAdapter mAdapter;
-    private void initData(){
-        SheepApp.getInstance().getNetComponent().getApiService().getFindTagList()
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                    @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        List<FindTag> newList = baseMessage.getDatas(FindTag.class);
-                        loadList(newList);
-                    }
-
-                    @Override
-                    public void onError(BaseMessage baseMessage) {
-                        //无数据时尝试获取缓存数据
-                        List<FindTag> newList = DataUtil.getInstance().getCacheList(ApiKey.articles_tags, FindTag.class);
-                        if(loadList(newList))
-                            G.showToast(baseMessage);
-                    }
-                    //没有添加数据返回true
-                    private boolean loadList(List<FindTag> newList){
-                        if(!ListUtil.isEmpty(newList)){
-                            list.clear();
-                            ListUtil.addAll(list, newList);
-                            loadData();
-                            return false;
-                        }
-                        return true;
-                    }
-                });
-    }
-
-    private List<FindTag> list = ListUtil.emptyList();
-    private void loadData() {
+    private void initView() {
         mAdapter = new GiftpackListAdapter(getFragmentManager(), getContext());
         mAdapter.add(FgtFindChild.newInstance(0), "全部");
-        for (FindTag findLabel : list) {
-            mAdapter.add(FgtFindChild.newInstance(findLabel.getId()), findLabel.getName());
-        }
         pager.setAdapter(mAdapter);
         indicator.setupWithViewPager(pager);
         pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@@ -106,9 +72,59 @@ public class FgtFind extends BaseCompatFragment {
 
             }
         });
-        pager.setCurrentItem(position);
+        CommonUtil.getInstance().reflex(indicator, activity);
+    }
+    private void initData() {
+        //尝试获取缓存数据
+        List<FindTag> newList = DataUtil.getInstance().getCacheList(ApiKey.articles_tags, FindTag.class);
+        loadList(newList);
+        initNetData();
+    }
+    private int onResumeCount = 0;
+    @Override
+    public void onResume() {
+        super.onResume();
+        if(list.isEmpty() && onResumeCount != 0)//非第一次时,并且没有数据时调用该接口
+            initNetData();
+        onResumeCount++;
+    }
 
+    private void initNetData(){
+        SheepApp.getInstance().getNetComponent().getApiService().getFindTagList()
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        if(list.isEmpty()) {//无数据时加载网络获取的新数据,否则不加载新数据
+                            List<FindTag> newList = baseMessage.getDatas(FindTag.class);
+                            loadList(newList);
+                        }
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                            G.showToast(baseMessage);
+                    }
+                });
+    }
+    //没有添加数据返回true
+    private void loadList(List<FindTag> newList){
+        if(!ListUtil.isEmpty(newList)){
+            list.clear();
+            ListUtil.addAll(list, newList);
+            loadMore();
+        }
+    }
+
+    private List<FindTag> list = ListUtil.emptyList();
+    private void loadMore(){
+        for (FindTag findLabel : list) {
+            mAdapter.add(FgtFindChild.newInstance(findLabel.getId()), findLabel.getName());
+        }
+        mAdapter.notifyDataSetChanged();
         CommonUtil.getInstance().reflex(indicator, activity);
+        pager.setCurrentItem(position);
     }
     private int position = 0;//默认选中第一个
 

+ 8 - 10
app/src/main/java/com/kfzs/duanduan/fragment/FgtFindChild.java

@@ -273,10 +273,8 @@ public class FgtFindChild extends BaseCompatFragment {
     public void initData(){
         //先尝试获取缓存数据
         List<FindItem> newList = DataUtil.getInstance().getCacheList(ApiKey.articles(type), FindItem.class);
-        if(loadList(newList))
-            refreshData();
-        else
-            notifyDataSetChanged();
+        loadList(newList);
+        refreshData();
     }
 
     public void refreshData(){
@@ -299,8 +297,11 @@ public class FgtFindChild extends BaseCompatFragment {
                         .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                             @Override
                             public void onNext(BaseMessage baseMessage) {
-                                List<FindItem> newList = baseMessage.getDatas(FindItem.class);
-                                loadList(newList);
+                                boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.articles(type));
+                                if(isNewData) {
+                                    List<FindItem> newList = baseMessage.getDatas(FindItem.class);
+                                    loadList(newList);
+                                }
                             }
 
                             @Override
@@ -309,17 +310,14 @@ public class FgtFindChild extends BaseCompatFragment {
                             }
                         });
     }
-    //没有添加数据返回true
-    private boolean loadList(List<FindItem> newList){
+    private void 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(){

+ 66 - 97
app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java

@@ -161,7 +161,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
     //recyclerview
     private TryMakeMoneyAdp tryMakeMoneyAdp;
-    private int position = 0;
+    private List<TaskAcceptedEty> allTaskAcceptedTaskList = ListUtil.emptyList();
     private List<TaskReleaseEty> releaseEtyLists = new ArrayList<>();
     private List<SlideshowEty> slideshowEtyLists = new ArrayList<>();
     private List<String> slideshowTitleList = new ArrayList<>();
@@ -182,14 +182,10 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                     loadUserInfo();
                     break;
                 case 1:
-                    position = 0;
-                    List<TaskAcceptedEty> allTaskAcceptedTaskList = DataUtil.getInstance().getAllTaskAcceptedTaskList();
+                    int position = 0;
                     if(!ListUtil.isEmpty(allTaskAcceptedTaskList)){
-                        tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, allTaskAcceptedTaskList), position);
-                        position++;
+                        tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RUN_TASK, allTaskAcceptedTaskList), position++);
                     }
-                    DataUtil.getInstance().checkOtherList(allTaskAcceptedTaskList, releaseEtyLists);
-                    tryMakeMoneyAdp.setIs_succession(3);
                     if(!ListUtil.isEmpty(releaseEtyLists)) {
                         tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.RELEASE_TASK, releaseEtyLists), position);
                     }
@@ -300,6 +296,9 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
     }
 
+    /**
+     * 初始化数据
+     */
     public void initData() {
         SysAppUtil.checkNet(new Action1<Integer>() {
             @Override
@@ -313,56 +312,30 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                 }
             }
         });
-        initACacheData();
-    }
-    private void initACacheData(){
-        if (upview1 != null) {
-            //停止滚动
-            upview1.stopFlipping();
-            upview1.startFlipping();
-        }
-        if (homepageItemNoticeMv != null) {
-            //停止滚动
-            homepageItemNoticeMv.stopFlipping();
-            homepageItemNoticeMv.startFlipping();
-        }
 
         //用户信息
         userEntity = DataUtil.getInstance().getUserEntity();
-        if(userEntity == null){//onResume中从网络获取
-        } else {
+        if(userEntity != null){
             loadUserInfo();
         }
-
-        //实时动态
-        List<MoreDataEntity> cacheMoreDataEtyList = DataUtil.getInstance().getCacheList(ApiKey.award_detail, MoreDataEntity.class);
-        if(ListUtil.isEmpty(cacheMoreDataEtyList)){
-            pagePresenter.getAwardDetail();
-        } else {
-            invite(cacheMoreDataEtyList);
-        }
         //任务
-        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<TaskReleaseEty> cacheTaskReleaseEtyList = DataUtil.getInstance().getCacheList(ApiKey.release_task, TaskReleaseEty.class);
-        if (cacheTaskReleaseEtyList == null) {
-            initOtherTaskList();
-        } else {
-            releaseEtyLists.clear();
+        if (cacheTaskReleaseEtyList != null) {
             releaseEtyLists.addAll(cacheTaskReleaseEtyList);
             mHanderl.sendEmptyMessage(1);
         }
 
+
+        //实时动态
+        List<MoreDataEntity> cacheMoreDataEtyList = DataUtil.getInstance().getCacheList(ApiKey.award_detail, MoreDataEntity.class);
+        if(!ListUtil.isEmpty(cacheMoreDataEtyList)){
+            invite(cacheMoreDataEtyList);
+        }
+
         //公告
         List<BulletinEnty> cacheBulletinEtyList = DataUtil.getInstance().getCacheList(ApiKey.bulletin, BulletinEnty.class);
         if(ListUtil.isEmpty(cacheBulletinEtyList)){
             homepageItemNoticeLayout.setVisibility(View.GONE);
-            pagePresenter.bulletin(null);
         } else {
             bulletinEntyLists.clear();
             bulletinEntyLists.addAll(cacheBulletinEtyList);
@@ -372,7 +345,6 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         List<SlideshowEty> cacheSlideshowEtyList = DataUtil.getInstance().getCacheList(ApiKey.slideshow, SlideshowEty.class);
         if(ListUtil.isEmpty(cacheSlideshowEtyList)){
             banner.setVisibility(View.GONE);
-            pagePresenter.slideshow(null);
         } else {
             for (SlideshowEty slideshowEty : cacheSlideshowEtyList) {
                 slideshowEty.setObjects(CommonUtil.getInstance().getValue(slideshowEty.getExt()));
@@ -385,7 +357,6 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         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
         } else {
             home_list_gridview_layout.setVisibility(View.VISIBLE);
             homeListEntitys.addAll(cacheHomeListEtyList);
@@ -411,7 +382,12 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             adpHomeListListview.notifyDataSetChanged();
             home_list_gridview_listview.setVisibility(homeListEntitysListview.isEmpty() ? View.GONE : View.VISIBLE);
         }
+        refreshData();
     }
+
+    /**
+     * 刷新数据
+     */
     public void refreshData() {
         SysAppUtil.checkNet(new Action1<Integer>() {
             @Override
@@ -440,9 +416,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         if (views.size() < 1) {
             pagePresenter.getAwardDetail();
         }
-
-        DataUtil.getInstance().reInitAcceptedTaskList();
-        initOtherTaskList();//任务
+        refreshTaskList();//任务
         pagePresenter.bulletin(null);//公告
         pagePresenter.slideshow(null);//轮播
         pagePresenter.homeList();//首页list
@@ -461,6 +435,9 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         for (int i = 0; i < 2; i++) {
             tryMakeMoneyAdp.add(RecyleObj.make(RecyleType.NONE, null));
         }
+        tryMakeMoneyAdp.addType(1);
+        tryMakeMoneyAdp.setIs_succession(3);
+        tryMakeMoneyAdp.addPresenter(tryMakeMoneyPresenter);
         recyclerview.setAdapter(tryMakeMoneyAdp);
 
         adpHomeListListview = new AdpHomeListListview(homeListEntitysListview, activity);
@@ -469,7 +446,9 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         home_list_gridview_gv.setAdapter(adpHomeListGrideview);
     }
 
-    private void initOtherTaskList() {
+    private void refreshTaskList() {
+        DataUtil.getInstance().resetTaskListChange();
+        tryMakeMoneyPresenter.returnTask(is_succession, show_game_task);
         RequestParameEty parameEty = new RequestParameEty();
         parameEty.setHashMap(
                 CommonUtil.getInstance()
@@ -534,7 +513,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
     @Override
     public void acceptedTaskUpdataView(Object o) {
-
+        refreshTaskList();
     }
 
     @Override
@@ -545,25 +524,24 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
     @Override
     public void giveUpTaskSuccesView(Object object) {
         G.showToast("取消任务成功");
-        if(object instanceof Integer)
-            DataUtil.getInstance().removeAcceptedTask((Integer) object);
-        else
-            DataUtil.getInstance().reInitAcceptedTaskList();
-        initOtherTaskList();
+        CommonUtil.getInstance().setTAskEnty(null);
+        refreshTaskList();
     }
 
     @Override
     public void giveUpTaskFailView(Object o) {
 
     }
-
+    private int is_succession = 3;//所有
+    private int show_game_task = 1;//包含游戏任务
     @Override
-    public void returnTaskTaskUpdataView(Object o) {
-        BaseMessage baseMessage = (BaseMessage) o;
-        List<TaskAcceptedEty> taskAcceptedEtyList = baseMessage.getDataList(TaskAcceptedEty.class);
-        AutoTaskListUtil.getInstance().loadList(taskAcceptedEtyList);
-        DataUtil.getInstance().reloadAcceptedTaskList(taskAcceptedEtyList);
-        mHanderl.sendEmptyMessage(1);
+    public void returnTaskTaskUpdataView(Object object) {
+        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.new_run_task(is_succession, show_game_task));
+        if(isNewData) {
+            BaseMessage baseMessage = (BaseMessage) object;
+            allTaskAcceptedTaskList = baseMessage.getDataList(TaskAcceptedEty.class);
+            mHanderl.sendEmptyMessage(1);
+        }
     }
 
     @Override
@@ -588,11 +566,11 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
     @Override
     public void releaseTaskTaskUpdataView(Object object) {
-        if(object instanceof BaseMessage) {
+        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.release_task);
+        if(isNewData && object instanceof BaseMessage) {
             List<TaskReleaseEty> releaseEtyList = ((BaseMessage) object).getDataList(TaskReleaseEty.class);
             if (releaseEtyList != null) {
-                releaseEtyLists.clear();
-                releaseEtyLists.addAll(releaseEtyList);
+                releaseEtyLists = releaseEtyList;
                 mHanderl.sendEmptyMessage(1);
             }
         }
@@ -626,24 +604,20 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
     @Override
     public void successSlideshow(BaseMessage baseMessage) {
-
-        try {
-            List<SlideshowEty> slideshowEtyList = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), SlideshowEty.class);
-            if (slideshowEtyList != null && slideshowEtyList.size() > 0) {
+        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.slideshow);
+        if(isNewData){
+            List<SlideshowEty> slideshowEtyList = baseMessage.getDataList(SlideshowEty.class);
+            if (ListUtil.isEmpty(slideshowEtyList)) {
+                banner.setVisibility(View.GONE);
+            } else {
                 slideshowEtyLists.clear();
                 for (SlideshowEty slideshowEty : slideshowEtyList) {
                     slideshowEty.setObjects(CommonUtil.getInstance().getValue(slideshowEty.getExt()));
                     slideshowEtyLists.add(slideshowEty);
                     slideshowTitleList.add(slideshowEty.getTitle());
                 }
-
                 bindBanner();
-            } else {
-                banner.setVisibility(View.GONE);
             }
-
-        } catch (Exception e) {
-            e.printStackTrace();
         }
     }
 
@@ -654,36 +628,33 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
 
     @Override
     public void successbulletin(BaseMessage baseMessage) {
-
-        try {
+        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.bulletin);
+        if(isNewData){
             List<BulletinEnty> bulletinEntyList = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), BulletinEnty.class);
-            if (bulletinEntyList != null && bulletinEntyList.size() > 0) {
+            if (ListUtil.isEmpty(bulletinEntyList)) {
+                homepageItemNoticeLayout.setVisibility(View.GONE);
+            } else {
                 bulletinEntyLists.clear();
                 bulletinEntyLists.addAll(bulletinEntyList);
                 inviteNotice(bulletinEntyLists);
-            } else {
-                homepageItemNoticeLayout.setVisibility(View.GONE);
             }
-
-        } catch (Exception e) {
-            e.printStackTrace();
         }
     }
 
     @Override
     public void successhomeList(BaseMessage baseMessage) {
         checkAndInitView();
-        try {
-            List<HomeListEntity> homeListEntity = JSONArray.parseArray(
-                    JSONArray.toJSONString(baseMessage.getData()),
-                    HomeListEntity.class
-            );
-            if (homeListEntity != null && homeListEntity.size() > 0) {
+        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.home_list);
+        if(isNewData){
+            List<HomeListEntity> homeListEntityList = baseMessage.getDataList(HomeListEntity.class);
+            if (ListUtil.isEmpty(homeListEntityList)) {
+                home_list_gridview_layout.setVisibility(View.GONE);
+            } else {
                 home_list_gridview_layout.setVisibility(View.VISIBLE);
                 homeListEntitys.clear();
                 homeListEntitysGridview.clear();
                 homeListEntitysListview.clear();
-                homeListEntitys.addAll(homeListEntity);
+                homeListEntitys.addAll(homeListEntityList);
                 boolean isShowQB = false;
                 boolean isShowMd = false;
                 for (int i = 0; i < homeListEntitys.size(); i++) {
@@ -705,12 +676,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                 adpHomeListGrideview.notifyDataSetChanged();
                 adpHomeListListview.notifyDataSetChanged();
                 home_list_gridview_listview.setVisibility(homeListEntitysListview.isEmpty() ? View.GONE : View.VISIBLE);
-            } else {
-                home_list_gridview_layout.setVisibility(View.GONE);
-
             }
-        } catch (Exception e) {
-            e.printStackTrace();
         }
     }
 
@@ -731,7 +697,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
         home_list_gridview_layout.setVisibility(View.GONE);
 
     }
-
+    private int onResumeCount = 0;
     @Override
     public void onResume() {
         super.onResume();
@@ -750,8 +716,11 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
             userEntity = result;
             loadUserInfo();
         }
-        Jump2View.getInstance().tryShowNewbieTask(activity, userEntity, newbie_task);
-        DataUtil.getInstance().initACacheAcceptedTaskList();
+        if(DataUtil.getInstance().isTaskListChange())//数据变化才刷新
+            refreshTaskList();
+        if(onResumeCount == 0)//第一次才调用
+            Jump2View.getInstance().tryShowNewbieTask(activity, userEntity, newbie_task);
+        onResumeCount++;
     }
 
     @Override

+ 16 - 3
app/src/main/java/com/sheep/gamegroup/heler/TaskHelper.java

@@ -57,8 +57,21 @@ public class TaskHelper {
         this.activity = activity;
         this.release_task_id = release_task_id;
 
-        taskAcceptedEty = DataUtil.getInstance().getTaskAcceptedTaskByReleaseTaskId(release_task_id);
-        initTask(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);
+                    }
+                });
     }
     private TaskReleaseEty taskReleaseEty;
     private void initTask(int release_task_id) {
@@ -219,7 +232,7 @@ public class TaskHelper {
                                             .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                                                 @Override
                                                 public void onNext(BaseMessage baseMessage) {
-                                                    DataUtil.getInstance().removeAcceptedTask(taskAcceptedEty.getId());
+                                                    DataUtil.getInstance().setTaskListChange(true);//主页任务列表发生变化,回到主页后自动刷新
                                                     refreshTask();
                                                 }
 

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

@@ -49,8 +49,8 @@ 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:不可领取账号
+    private int receive_account = 1;//integer($int64)0:未领取账号 1:已领取账号
+    private int available_receive = 1;//0:可领取账号 1:不可领取账号
 
     public int getAvailable_receive() {
         return available_receive;

+ 7 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/GameAccountEntity.java

@@ -164,6 +164,13 @@ public class GameAccountEntity implements Serializable {
     }
 
     /**
+     * 是否是小米账号(这里不能通过task_type来判断)
+     * @return
+     */
+    public boolean isXiaoMiAccount(){
+        return app_id != 0;
+    }
+    /**
      * 是否是平台账号
      * @return
      */

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

@@ -1,4 +1,4 @@
-package com.sheep.gamegroup.view.activity;
+package com.sheep.gamegroup.model.entity;
 
 import android.text.TextUtils;
 
@@ -46,7 +46,7 @@ public class XiaomiGameEntity implements Serializable,IDownload {
 
     private int platform;//integer($int32)平台 0:全 1:安卓 2:IOS
 
-    private int receive_account;//integer($int64)0:未领取账号 1:已领取账号
+    private int receive_account = 1;//integer($int64)0:未领取账号 1:已领取账号
 
     private int record;//integer($int64)1:可记录 其他:不可记录
 
@@ -65,7 +65,7 @@ public class XiaomiGameEntity implements Serializable,IDownload {
 
     private String type;//类型
 
-    private int available_receive;//0:可领取账号 1:不可领取账号
+    private int available_receive = 1;//0:可领取账号 1:不可领取账号
 
     public int getAvailable_receive() {
         return available_receive;

+ 14 - 5
app/src/main/java/com/sheep/gamegroup/model/util/CacheInterceptor.java

@@ -1,9 +1,12 @@
 package com.sheep.gamegroup.model.util;
 
+import android.text.TextUtils;
+
 import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 
 import org.afinal.simplecache.ACache;
+import org.afinal.simplecache.ApiKey;
 
 import java.io.EOFException;
 import java.io.IOException;
@@ -62,17 +65,23 @@ public class CacheInterceptor implements Interceptor {
                     if (!isPlaintext(buffer)) {
                         return response;
                     }
-
+                    boolean oldEqualsNew = false;
+                    ACache aCache = ACache.get(SheepApp.getInstance());
                     if (contentLength != 0L) {
                         String result = buffer.clone().readString(charset);
-                        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, DEFAULT_SAVE_TIME);//默认缓存5分钟
-                        } else {
-                            aCache.remove(key);
+                            String oldResult = aCache.getAsString(key);
+                            if(TextUtils.equals(oldResult, result)){
+                                oldEqualsNew = true;
+                                aCache.put(ApiKey.oldEqualsNew(key), "yes");
+                            } else {
+                                aCache.put(key, result);
+                            }
                         }
                     }
+                    if(!oldEqualsNew)
+                        aCache.remove(ApiKey.oldEqualsNew(key));
                 }
             }
         }

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

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

+ 7 - 2
app/src/main/java/com/sheep/gamegroup/presenter/TryMakeMoneyPresenter.java

@@ -52,10 +52,15 @@ public class TryMakeMoneyPresenter implements TryMakeMoneyContract.Presenter {
 
     }
 
+    /**
+     * 获取正在运行的任务
+     * @param is_succession
+     * @param show_game_task: 0 不显示游戏任务 , 1 显示游戏任务
+     */
     @Override
-    public void returnTask(int is_succession) {
+    public void returnTask(int is_succession, int show_game_task) {
 
-        apiService.returnTask(is_succession, 0)
+        apiService.returnTask(is_succession, show_game_task)
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {

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

@@ -31,17 +31,14 @@ import com.arialyy.aria.core.inf.IEntity;
 import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
-import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.mdad.sdk.mdsdk.AdManager;
 import com.sheep.gamegroup.absBase.BaseActivity;
 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;
 import com.sheep.gamegroup.model.entity.TaskChild;
 import com.sheep.gamegroup.model.entity.TaskDescEntity;
 import com.sheep.gamegroup.model.entity.TaskEty;
@@ -50,10 +47,9 @@ import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.entity.WithdrawalEty;
 import com.sheep.gamegroup.model.util.AutoTaskListUtil;
 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.gamegroup.model.entity.XiaomiGameEntity;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -67,7 +63,6 @@ import com.umeng.socialize.bean.SHARE_MEDIA;
 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;
 
@@ -79,7 +74,6 @@ import java.security.MessageDigest;
 import java.util.Calendar;
 import java.util.HashMap;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;

+ 16 - 246
app/src/main/java/com/sheep/gamegroup/util/DataUtil.java

@@ -3,39 +3,27 @@ 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 ACache aCache;
     private DataUtil() {
+        aCache = ACache.get(SheepApp.getInstance());
         userEntity = getCacheResult(ApiKey.get_info, UserEntity.class);//先从缓存中初始化用户信息
         String id = SpUtils.getToken(SheepApp.mContext);
         String uid = TextUtils.isEmpty(id) ? "" : id.split("@")[0];
@@ -57,7 +45,7 @@ public class DataUtil {
      */
     public void clearData() {
         userEntity = null;
-        clearCache(ApiKey.get_info);//清除用户信息的缓存
+        aCache.clear();
     }
 
     //-----------------------------------------用户信息部分-----------------------------------------------------开始
@@ -158,7 +146,6 @@ public class DataUtil {
 
     //-----------------------------------------缓存数据部分-----------------------------------------------------开始
     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) {
@@ -175,7 +162,6 @@ public class DataUtil {
      * @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)) {
@@ -193,7 +179,6 @@ public class DataUtil {
      * @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;
@@ -206,46 +191,6 @@ public class DataUtil {
         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"));
-    }
 
     /**
      * 获取缓存数据的时间
@@ -254,208 +199,33 @@ public class DataUtil {
      * @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;
+    public boolean isNewData(String key) {
+        return !TextUtils.equals(aCache.getAsString(ApiKey.oldEqualsNew(key)), "yes");//新老数据不同,说明是新数据
     }
 
+    //-----------------------------------------缓存数据部分-----------------------------------------------------结束
+    //-----------------------------------------进行任务部分-----------------------------------------------------开始
+    private boolean taskListChange = false;
     /**
-     * 通过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();
-        }
+    public void resetTaskListChange() {
+        taskListChange = false;
     }
-
     /**
-     * 根据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 boolean isTaskListChange() {
+        return taskListChange;
     }
 
-    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;
-                }
-            });
-        }
+    public void setTaskListChange(boolean taskListChange) {
+        this.taskListChange = taskListChange;
     }
     //-----------------------------------------进行任务部分-----------------------------------------------------结束
 }

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

@@ -29,6 +29,7 @@ import com.bumptech.glide.request.RequestOptions;
 import com.sheep.gamegroup.model.entity.Advertising;
 import com.sheep.gamegroup.model.entity.Container;
 import com.sheep.gamegroup.model.entity.DialogConfig;
+import com.sheep.gamegroup.model.entity.GameAccountEntity;
 import com.sheep.gamegroup.model.entity.PayEntity;
 import com.sheep.gamegroup.view.activity.SplashAct;
 import com.sheep.gamegroup.view.dialog.DialogAddAccount;
@@ -689,6 +690,12 @@ public class ViewUtil {
     public void showGameAccountDetail(Activity activity, int id){
         new DialogModifyAccount(activity, id).showAddAccount();
     }
+    /**
+     * 用户详情
+     */
+    public void showGameAccountDetail(Activity activity, GameAccountEntity item){
+        new DialogModifyAccount(activity, item).showAddAccount();
+    }
 
 
     /**

+ 50 - 45
app/src/main/java/com/sheep/gamegroup/view/activity/ActFindGame.java

@@ -201,29 +201,14 @@ public class ActFindGame extends BaseActivity {
 
     @Override
     public void initData() {
-        FindApp findApp = null;
+        FindApp findApp = DataUtil.getInstance().getCacheResult(ApiKey.applications(id), FindApp.class);
         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();
-                        }
-
-                        @Override
-                        public void onError(BaseMessage baseMessage) {
-                            G.showToast(baseMessage);
-                            resetData();
-                            hideProgress();
-                        }
-                    });
+        }
+        initFindAppFromNet();
+        if(isShowAppScore) {
+            initAppScoreNum();
+            initMyAppScore();
         }
         UserEntity userEntity = DataUtil.getInstance().getUserEntity();
         if(userEntity == null) {
@@ -242,13 +227,34 @@ public class ActFindGame extends BaseActivity {
         }
     }
 
+    private void initFindAppFromNet() {
+        showProgress();
+        SheepApp.getInstance().getNetComponent().getApiService().getAppDetail(id)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(this) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.applications(id));
+                        if(isNewData) {
+                            FindApp findApp = baseMessage.getData(FindApp.class);
+                            loadApp(findApp);
+                        }
+                        hideProgress();
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast(baseMessage);
+                        resetData();
+                        hideProgress();
+                    }
+                });
+    }
+
     private void loadApp(FindApp findApp) {
         if (findApp != null) {
             loadData(findApp);
-            if(isShowAppScore) {
-                initAppScoreNum();
-                initMyAppScore();
-            }
         } else {
             resetData();
         }
@@ -256,28 +262,27 @@ public class ActFindGame extends BaseActivity {
 
     private void initAppScoreNum() {
         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);
-                        }
-                    });
-        } else if(!findAppScoreList.isEmpty()) {
+        if(!findAppScoreList.isEmpty()) {
             loadAppScoreNum(findAppScoreList);
         }
+        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);
+                    }
+                });
     }
     private void initMyAppScore() {
         MyFindAppCore myFindAppCore = DataUtil.getInstance().getCacheResult(ApiKey.my_score(id), MyFindAppCore.class);

+ 37 - 32
app/src/main/java/com/sheep/gamegroup/view/activity/ActFindInformation.java

@@ -215,30 +215,32 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
             }
         });
         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) {
+        if(data != null){
+            loadFindItem(data);
+        }
+        SheepApp.getInstance().getNetComponent().getApiService().getFindDetail(id)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.articlesItem(id));
+                        if(isNewData) {
                             FindItem data = baseMessage.getData(FindItem.class);
                             loadFindItem(data);
                         }
+                    }
 
-                        @Override
-                        public void onError(BaseMessage baseMessage) {
-                            taskHelper.clear();
-                            notifyDataSetChanged();
-                        }
-                    });
-        } else {
-            loadFindItem(data);
-        }
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        taskHelper.clear();
+                        notifyDataSetChanged();
+                    }
+                });
     }
 
     private void loadFindItem(FindItem data) {
-        if(data != null && !TextUtils.equals(JSON.toJSONString(findItem), JSON.toJSONString(data))){
+        if(data != null){
             taskHelper.clear();
             findItem = data;
             list.clear();
@@ -258,29 +260,32 @@ public class ActFindInformation extends BaseActivity implements Action1<Integer>
 
     private FindApp findApp;
     private void initFindApp(int application_id) {
-
         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) {
+        }
+        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) {
+                        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.applications(id));
+                        if(isNewData) {
                             findApp = baseMessage.getData(FindApp.class);
                             notifyDataSetChanged();
-                        }
-
-                        @Override
-                        public void onError(BaseMessage baseMessage) {
-                            G.showToast(baseMessage);
+                        } else {
                             refresh.setRefreshing(false);
                         }
-                    });
-        }
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast(baseMessage);
+                        refresh.setRefreshing(false);
+                    }
+                });
     }
 
     private FindItem findItem;

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

@@ -1,9 +1,6 @@
 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;
@@ -20,18 +17,13 @@ import android.widget.GridView;
 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;
-import com.sheep.gamegroup.model.entity.RecyleType;
 import com.sheep.gamegroup.model.entity.SearchGameRecord;
 import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.TaskReleaseEty;
+import com.sheep.gamegroup.model.entity.XiaomiGameEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.Jump2View;
@@ -42,20 +34,16 @@ 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.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;
 
 import butterknife.BindView;
 import butterknife.OnClick;

+ 2 - 30
app/src/main/java/com/sheep/gamegroup/view/activity/ActXiaomiGame.java

@@ -1,67 +1,39 @@
 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.model.entity.XiaomiGameEntity;
 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;
 
@@ -252,7 +224,7 @@ public class ActXiaomiGame extends BaseActivity {
 
                                 if (page == 1)
                                     list.clear();
-                                CommonUtil.getInstance().updateEmptyView(empty_view, ListUtil.addAll(list, newList) == 0?true:false);
+                                CommonUtil.getInstance().updateEmptyView(empty_view, ListUtil.addAll(list, newList) == 0);
                                 view_list.getAdapter().notifyDataSetChanged();
                             }
                         } catch (Exception e) {

+ 0 - 13
app/src/main/java/com/sheep/gamegroup/view/activity/SingTask.java

@@ -1,13 +0,0 @@
-package com.sheep.gamegroup.view.activity;
-
-import android.app.Activity;
-
-/**
- * Created by Administrator on 2018/3/27.
- */
-
-public class SingTask extends Activity {
-
-
-
-}

+ 35 - 50
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -192,8 +192,8 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     //2.6
     private boolean btn_show;//true:不显示按钮
 
-    //是否刷新页面
-    private boolean isFresh;
+    //是否需要在onResume中刷新页面
+    private boolean isFresh = false;
 
     @Override
     protected int getLayoutId() {
@@ -233,10 +233,8 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
 
     @Override
     public void initData() {
-        if (releaseTaskId != -1 && !isGetTaskDesc) {
-            isGetTaskDesc = true;
-            accepteTaskDetail(releaseTaskId);
-            return;
+        if (releaseTaskId != -1) {
+            getAcceptedTaskDetail(releaseTaskId);
         }
     }
 
@@ -766,14 +764,12 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         empty_view.setVisibility(View.GONE);
         taskReleaseEty = baseMessage.getData(TaskReleaseEty.class);
         initWigget();
-        isGetTaskDesc = false;
     }
 
     @Override
     public void taskDescFaile(BaseMessage baseMessage) {
         hideProgress();
         G.showToast(baseMessage.getMsg() + "");
-        isGetTaskDesc = false;
         CommonUtil.getInstance().updateEmptyView(empty_view, true);
     }
 
@@ -862,23 +858,15 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                     }
 
                     @Override
-                    public void onNext(BaseMessage baseMessage) {
-                        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;
-                                }
-                            }
-                        });
+                    public void onNext(BaseMessage baseMessage) {//领取任务成功
+                        hideProgress();
+                        taskReleaseEty.setIs_running(true);
+                        taskReleaseEty.getTask().setRelease_task_id(taskReleaseEty.getId());
+                        CommonUtil.getInstance().setTAskEnty(taskReleaseEty.getTask());
+
+                        DataUtil.getInstance().setTaskListChange(true);//主页任务列表发生变化,回到主页后自动刷新
+
+                        getAcceptedTaskDetail(releaseTaskId);
 
                     }
                 });
@@ -975,16 +963,15 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
         if (task.getKey().equals(taskEty.getDownload_link())) {
             //在这里处理任务完成的状态
             btnTaskItem.setText(CommonUtil.START_INSTALL);
-            freshData();
+            updateBottom();
         }
     }
 
-    private boolean isGetTaskDesc = false;
 
     public void freshData() {
-        if (releaseTaskId != -1 && !isGetTaskDesc && !isFresh) {
-            isGetTaskDesc = true;
-            accepteTaskDetail(releaseTaskId);
+        if (releaseTaskId != -1 && isFresh) {
+            isFresh = false;
+            getAcceptedTaskDetail(releaseTaskId);
         }
     }
 
@@ -1171,38 +1158,36 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
     /**
      * 获取接受的任务详情
      */
-    private void accepteTaskDetail(final int releaseTaskId){
+    private void getAcceptedTaskDetail(final int releaseTaskId){
         showProgress();
         CommonUtil.getInstance().getTaskAllDetail(releaseTaskId, new Action1<BaseMessage>() {
                     @Override
                     public void call(BaseMessage baseMessage) {
-                        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();
+                        if(baseMessage.getCode() == 0)
+                            gettaskAcceptedEty = baseMessage.getData(TaskAcceptedEty.class);
+                        if(gettaskAcceptedEty != null)
                             taskReleaseEty = gettaskAcceptedEty.getRelease_task();
+                        if(taskReleaseEty == null){
+                            initTaskReleaseEty();
+                        } else {
+                            hideProgress();
                             empty_view.setVisibility(View.GONE);
                             initWigget();
-                            isGetTaskDesc = false;
                         }
                     }
                 });
     }
 
+    private void initTaskReleaseEty() {
+        taskReleaseEty = DataUtil.getInstance().getCacheResult(ApiKey.releaseTaskDesc(releaseTaskId), TaskReleaseEty.class);
+            hideProgress();
+        if (taskReleaseEty != null) {
+            empty_view.setVisibility(View.GONE);
+            initWigget();
+        }
+        presenter.taskDesc(releaseTaskId);
+    }
+
     @Override
     protected void onDestroy() {
         super.onDestroy();

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

@@ -128,13 +128,10 @@ public class TaskListAct extends BaseActivity implements TaskListContract.View {
     }
 
     @Override
-    public void updataView(Object o) {
-        try {
-            BaseMessage baseMessage = (BaseMessage) o;
-            List<TaskAcceptedEty> releaseEtyList = JSONArray.parseArray(JSONArray.toJSONString(baseMessage.getData()), TaskAcceptedEty.class);
+    public void updataView(Object object) {
+        if(object instanceof BaseMessage){
+            List<TaskAcceptedEty> releaseEtyList = ((BaseMessage) object).getDataList(TaskAcceptedEty.class);
             ListUtil.addAll(etyList, releaseEtyList);
-        } catch (Exception e) {
-            e.printStackTrace();
         }
         notifyDataSetChanged();
     }

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

@@ -132,7 +132,7 @@ public class AdpGameAccount extends AdpCommonRecy<RecyleObj> {
                     @Override
                     public void onClick(View v) {
                         USER_GAME_ACCOUNT_LOOK.onEvent();
-                        ViewUtil.newInstance().showGameAccountDetail((Activity) context, item.getId());
+                        ViewUtil.newInstance().showGameAccountDetail((Activity) context, item);
                     }
                 });
                 if(item.cantDeleteAccount()){

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

@@ -3,6 +3,7 @@ package com.sheep.gamegroup.view.dialog;
 import android.app.Activity;
 import android.content.DialogInterface;
 import android.os.Handler;
+import android.os.Looper;
 import android.os.Message;
 import android.support.v7.app.AlertDialog;
 import android.text.TextUtils;
@@ -37,6 +38,8 @@ import static com.sheep.gamegroup.util.UMConfigUtils.Event.USER_GAME_ACCOUNT_LOO
 public class DialogModifyAccount {
     private Activity activity;
     private EditText game_new_pwd_et;
+    private View modify_pwd_tv_line;
+    private TextView modify_pwd_tv;
     private TextView sureTv;
     private int id;
     private GameAccountEntity gameAccountEntity;
@@ -54,8 +57,13 @@ public class DialogModifyAccount {
         this.activity = activity;
         this.id = id;
     }
+    public DialogModifyAccount(Activity activity, GameAccountEntity item) {
+        this.activity = activity;
+        this.gameAccountEntity = item;
+        this.id = item.getId();
+    }
 
-    Handler mHandler = new Handler() {
+    Handler mHandler = new Handler(Looper.getMainLooper()) {
         @Override
         public void handleMessage(Message msg) {
             super.handleMessage(msg);
@@ -89,7 +97,8 @@ public class DialogModifyAccount {
         dialog_title.setText("修改密码");
 
         sureTv = view.findViewById(R.id.sure_tv);
-        TextView modify_pwd_tv = view.findViewById(R.id.modify_pwd_tv);
+        modify_pwd_tv_line = view.findViewById(R.id.modify_pwd_tv_line);
+        modify_pwd_tv = view.findViewById(R.id.modify_pwd_tv);
         game_title_et = view.findViewById(R.id.game_title_et);
         game_account_et = view.findViewById(R.id.game_account_et);
         game_old_pwd_et = view.findViewById(R.id.game_old_pwd_et);
@@ -131,6 +140,8 @@ public class DialogModifyAccount {
                 }
             }
         });
+        modify_pwd_tv_line.setVisibility(View.GONE);
+        modify_pwd_tv.setVisibility(View.GONE);
         modify_pwd_tv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -159,7 +170,10 @@ public class DialogModifyAccount {
         } catch (Exception e) {
             e.printStackTrace();
         }
-        initData();
+        if(gameAccountEntity == null)
+            initData();
+        else
+            initView();
     }
 
     /**
@@ -187,5 +201,7 @@ public class DialogModifyAccount {
         game_title_et.setText(gameAccountEntity.getDetailShowForGameType()+"");
         game_account_et.setText("账号:"+gameAccountEntity.getAccount()+"");
         game_old_pwd_et.setText("原密码:"+gameAccountEntity.getPassword()+"");
+        modify_pwd_tv_line.setVisibility(gameAccountEntity.isXiaoMiAccount() ? View.GONE : View.VISIBLE);
+        modify_pwd_tv.setVisibility(gameAccountEntity.isXiaoMiAccount() ? View.GONE : View.VISIBLE);
     }
 }

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

@@ -82,7 +82,6 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         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))
@@ -123,6 +122,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     public void onViewCreated() {
         activity = getActivity();
         initView();
+        initData();
     }
     private String task_type = "-1";
     private boolean isGameTask = false;
@@ -185,7 +185,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     }
     private boolean isFirstCache = false;//是否首先尝试缓存
     //先尝试缓存数据,无缓存数据时,再尝试获取网络数据
-    public void initACacheData(){
+    public void initData(){
         isFirstCache = true;
         mInitData();
     }
@@ -196,27 +196,28 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         mInitData();
     }
     public void mInitData() {
+        //加载缓存
         type = 0;
-
         if(isFirstCache){
             List<TaskAcceptedEty> cacheTaskAcceptedEtyList;
             if(isGameTask) {
-                cacheTaskAcceptedEtyList = DataUtil.getInstance().getGameTaskList();
+                cacheTaskAcceptedEtyList = DataUtil.getInstance().getCacheList(ApiKey.run_game_task, TaskAcceptedEty.class);
             } else {
-                cacheTaskAcceptedEtyList = DataUtil.getInstance().getTaskAcceptedTaskList(is_succession);
+                cacheTaskAcceptedEtyList = DataUtil.getInstance().getCacheList(ApiKey.new_run_task(is_succession, 0), TaskAcceptedEty.class);
             }
             if (ListUtil.isEmpty(cacheTaskAcceptedEtyList)) {
                 acceptedEtyList.clear();
             } else {
                 acceptedEtyList = cacheTaskAcceptedEtyList;
             }
-            getNetWork(type);
+            getFromACache(type);
+        }
+        //加载网络数据
+        type = 0;
+        if(isGameTask){
+            presenter.runGameTask();
         } else {
-            if(isGameTask){
-                presenter.runGameTask();
-            } else {
-                presenter.returnTask(is_succession);
-            }
+            presenter.returnTask(is_succession, 0);
         }
     }
 
@@ -265,10 +266,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     public void giveUpTaskSuccesView(Object object) {
         G.showToast("取消任务成功");
         CommonUtil.getInstance().setTAskEnty(null);
-        if(object instanceof Integer)
-            DataUtil.getInstance().removeAcceptedTask((Integer) object);
-        else
-            DataUtil.getInstance().reInitAcceptedTaskList();
+        DataUtil.getInstance().setTaskListChange(true);
         refreshData();
     }
 
@@ -284,15 +282,18 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
 
     @Override
     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;
+        boolean isNewData = DataUtil.getInstance().isNewData(isGameTask ? ApiKey.run_game_task : ApiKey.new_run_task(is_succession, 0));
+        if(isNewData) {
+            if (object instanceof BaseMessage) {
+                List<TaskAcceptedEty> taskAcceptedEty = ((BaseMessage) object).getDataList(TaskAcceptedEty.class);
+                if (ListUtil.isEmpty(taskAcceptedEty)) {
+                    acceptedEtyList.clear();
+                } else {
+                    acceptedEtyList = taskAcceptedEty;
+                }
             }
         }
-        getNetWork(type);
+        getFromNetWork(type);
     }
 
     @Override
@@ -311,7 +312,7 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
             e.printStackTrace();
             G.showToast(" 网络错误!");
         }
-        getNetWork(type);
+        getFromNetWork(type);
     }
 
     /**
@@ -320,9 +321,10 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
      */
     @Override
     public void releaseTaskTaskUpdataView(Object object) {
-        if(object instanceof BaseMessage) {
+        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.release_task(type, task_type, is_succession));
+        if(isNewData && object instanceof BaseMessage) {
             List<TaskReleaseEty> releaseEtyList = ((BaseMessage) object).getDataList(TaskReleaseEty.class);
-            switch (type){
+            switch (type) {
                 case 0:
                     releaseEtyLists = releaseEtyList;
                     break;
@@ -335,24 +337,20 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     }
 
     @Override
-    public void failReleaseTask2View(Object o) {
-        loadReleaseOrNotifyAdapter();
-    }
-    private void loadReleaseOrNotifyAdapter(){
+    public void failReleaseTask2View(Object object) {
         switch (type){
-            case 0://获取已经发布任务
-                if(ListUtil.isEmpty(releaseEtyLists)){//获取过数据,但是没有数据,直接保存空数据,以便下次不重复调接口
-                    DataUtil.getInstance().resetCacheTime(ApiKey.release_task(type, task_type, is_succession), DEFAULT_SAVE_TIME);
-                }
+            case 0:
+                releaseEtyLists.clear();
                 break;
-            case 1://即将开始的任务列表
-                if(ListUtil.isEmpty(releaseEtyListsBegin)){
-                    DataUtil.getInstance().resetCacheTime(ApiKey.release_task(type, task_type, is_succession), DEFAULT_SAVE_TIME);
-                }
+            case 1:
+                releaseEtyListsBegin.clear();
                 break;
         }
+        loadReleaseOrNotifyAdapter();
+    }
+    private void loadReleaseOrNotifyAdapter(){
         notifyDataSetChanged();
-        getNetWork(++type);
+        getFromNetWork(++type);
     }
 
     @Subscribe
@@ -375,8 +373,8 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
     @Override
     public void onResume() {
         super.onResume();
-        if (presenter != null) {
-            initACacheData();
+        if (presenter != null && DataUtil.getInstance().isTaskListChange()) {
+            refreshData();
         }
     }
 
@@ -394,52 +392,54 @@ public class FgtTryMakeMoney extends BaseFragment implements TryMakeMoneyContrac
         }
     }
     /**
-     * 即将开始
+     * 发布的任务
      * type: 0 1
      */
-    private void getNetWork(int type){
+    private void getFromACache(int type){
         if(type > 1){
             return;
         }
-        if(isFirstCache){
-            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();
-            parameEty.setHashMap(
-                    CommonUtil.getInstance()
-                            .setHashMap(1,
-                                    100,
-                                    SheepApp.getInstance().getConnectAddress().getPlatForm(),
-                                    0,
-                                    0,
-                                    type,
-                                    task_type,
-                                    is_succession));
-            presenter.releaseTask(parameEty);
+        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();
+                } else {
+                    releaseEtyLists = cacheTaskReleaseEtyList;
+                    notifyDataSetChanged();
+                    getFromACache(++type);
+                }
+                break;
+            case 1:
+                if(cacheTaskReleaseEtyList == null) {
+                    releaseEtyListsBegin.clear();
+                } else {
+                    releaseEtyListsBegin = cacheTaskReleaseEtyList;
+                    notifyDataSetChanged();
+                    getFromACache(++type);
+                }
+                break;
+        }
+    }
+    /**
+     * 发布的任务
+     * type: 0 1
+     */
+    private void getFromNetWork(int type){
+        if(type > 1){
+            return;
         }
+        RequestParameEty parameEty = new RequestParameEty();
+        parameEty.setHashMap(
+                CommonUtil.getInstance()
+                        .setHashMap(1,
+                                100,
+                                SheepApp.getInstance().getConnectAddress().getPlatForm(),
+                                0,
+                                0,
+                                type,
+                                task_type,
+                                is_succession));
+        presenter.releaseTask(parameEty);
     }
 }

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

@@ -36,6 +36,8 @@ public class ApiKey {
     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 run_game_task = "app/accepted_task/run_game_task";
     //游戏任务中的我的游戏
     public static final String my_games = "app/game_consumption/my_games?page=1&per_page=100";
     //首页获取所有发布的热门任务(试玩任务、游戏任务、连续任务)
@@ -45,8 +47,8 @@ public class ApiKey {
         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){
-        return "app/accepted_task/new_run_task/?is_succession="+is_succession;
+    public static String new_run_task(int is_succession, int show_game_task){
+        return String.format(Locale.CHINA, "app/accepted_task/new_run_task/?is_succession=%d&show_game_task=%d", is_succession, show_game_task);
     }
     //发现模块标签列表
     public static final String articles_tags = "app/find/articles_tags/list";
@@ -78,5 +80,9 @@ public class ApiKey {
     public static String releaseTaskDesc(int releaseTaskId){
         return String.format(Locale.CHINA, "app/release_task/%d/desc", releaseTaskId);
     }
+    //获取任务详情
+    public static String oldEqualsNew(String key){
+        return key+"oldEqualsNew";
+    }
 
 }

+ 3 - 0
app/src/main/res/layout/dialog_modify_account.xml

@@ -24,6 +24,7 @@
         android:minWidth="@dimen/view_size_150"
         android:padding="@dimen/content_padding_small"
         android:text="账号:123456"
+        android:textIsSelectable="true"
         android:textSize="@dimen/text_size_13"
         android:layout_marginBottom="@dimen/content_padding_15"/>
 
@@ -44,9 +45,11 @@
             android:minWidth="@dimen/view_size_150"
             android:padding="@dimen/content_padding_small"
             android:text="原密码:123456"
+            android:textIsSelectable="true"
             android:textSize="@dimen/text_size_13"/>
 
         <View
+            android:id="@+id/modify_pwd_tv_line"
             android:layout_width="1sp"
             android:layout_height="15dp"
             android:background="@color/gray"

+ 2 - 2
gradle.properties

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