Procházet zdrojové kódy

登录验证需求修改、发现优化、邀请赚钱修改、bug修改

liujiangyao před 7 roky
rodič
revize
176ab6da40

+ 41 - 5
app/src/main/java/com/sheep/gamegroup/view/activity/BaseListActivity.java

@@ -58,10 +58,14 @@ public abstract class BaseListActivity<T> extends BaseActivity {
         getType();
         getType();
         initView();
         initView();
         initListener();
         initListener();
+        if(!refreshDataAfterOnResume())
+            view_list.refresh();
     }
     }
 
 
     protected int page = 1;//页数
     protected int page = 1;//页数
     protected int per_page = DataUtil.PER_PAGE;
     protected int per_page = DataUtil.PER_PAGE;
+    protected BaseMessage lastMessage;//最后一个网络获取的结果
+    private boolean noMore = false;
     public void initView() {
     public void initView() {
 //        title.setVisibility(View.GONE);
 //        title.setVisibility(View.GONE);
     }
     }
@@ -80,6 +84,7 @@ public abstract class BaseListActivity<T> extends BaseActivity {
                     initData();
                     initData();
                 }else {
                 }else {
                     view_list.setNoMore(true);
                     view_list.setNoMore(true);
+                    setNoMore(true);
                 }
                 }
             }
             }
         });
         });
@@ -91,12 +96,18 @@ public abstract class BaseListActivity<T> extends BaseActivity {
 
 
 
 
     protected List<T> list = ListUtil.emptyList();
     protected List<T> list = ListUtil.emptyList();
+    protected List<T> lastCacheList = ListUtil.emptyList();
+    //默认先获取缓存
+    protected boolean isFirstGetACache(){
+        return true;
+    }
     public void initData() {
     public void initData() {
         final String urlKey = getKey(page, per_page);
         final String urlKey = getKey(page, per_page);
-        //先尝试获取缓存数据
-        List<T> newList = DataUtil.getInstance().getCacheList(urlKey, getTClass());
-        loadList(newList);
-        empty_view.setVisibility(View.INVISIBLE);
+        if(isFirstGetACache() && page == 1) {
+            //先尝试获取缓存数据
+            lastCacheList = DataUtil.getInstance().getCacheList(urlKey, getTClass());
+            loadList(lastCacheList);
+        }
         SysAppUtil.checkNet(new Action1<Integer>() {
         SysAppUtil.checkNet(new Action1<Integer>() {
             @Override
             @Override
             public void call(Integer result) {
             public void call(Integer result) {
@@ -115,8 +126,10 @@ public abstract class BaseListActivity<T> extends BaseActivity {
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                 .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                     @Override
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                     public void onNext(BaseMessage baseMessage) {
+                        lastMessage = baseMessage;
                         boolean isNewData = DataUtil.getInstance().isNewData(urlKey);
                         boolean isNewData = DataUtil.getInstance().isNewData(urlKey);
-                        if(isNewData) {
+                        if(isNewData || !isFirstGetACache()) {
+                            list.removeAll(lastCacheList);
                             List<T> newList = baseMessage.getDatas(getTClass());
                             List<T> newList = baseMessage.getDatas(getTClass());
                             loadList(newList);
                             loadList(newList);
                         }else {
                         }else {
@@ -132,12 +145,17 @@ public abstract class BaseListActivity<T> extends BaseActivity {
     }
     }
 
 
     public void refreshData(){
     public void refreshData(){
+        lastMessage = null;
+        setNoMore(false);
+        empty_view.setVisibility(View.INVISIBLE);
         list.clear();
         list.clear();
         view_list.getAdapter().notifyDataSetChanged();
         view_list.getAdapter().notifyDataSetChanged();
         page = 1;
         page = 1;
         initData();
         initData();
     }
     }
     private void loadList(List<T> newList){
     private void loadList(List<T> newList){
+        if(!isFirstGetACache() && page == 1)
+            list.clear();
         ListUtil.addAll(list, newList);
         ListUtil.addAll(list, newList);
         notifyDataSetChanged();
         notifyDataSetChanged();
     }
     }
@@ -152,6 +170,21 @@ public abstract class BaseListActivity<T> extends BaseActivity {
         view_list.getAdapter().notifyDataSetChanged();
         view_list.getAdapter().notifyDataSetChanged();
     }
     }
 
 
+    /**
+     * 每次都在onResume方法中进行更新数据
+     * @return
+     */
+    public boolean refreshDataAfterOnResume() {
+        return false;
+    }
+    @Override
+    public void onResume() {
+        super.onResume();
+        if(refreshDataAfterOnResume()){
+            view_list.refresh();
+        }
+    }
+
     protected abstract RecyclerView.Adapter getAdapter();
     protected abstract RecyclerView.Adapter getAdapter();
 
 
     protected abstract String getKey(int page, int per_page);
     protected abstract String getKey(int page, int per_page);
@@ -161,4 +194,7 @@ public abstract class BaseListActivity<T> extends BaseActivity {
     protected abstract Class<T> getTClass();
     protected abstract Class<T> getTClass();
 
 
     protected abstract int getType();
     protected abstract int getType();
+    public void setNoMore(boolean noMore) {
+        this.noMore = noMore;
+    }
 }
 }

+ 7 - 1
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGameSon.java

@@ -50,6 +50,7 @@ public class FgtPlayGameSon extends BaseListFragment<GameEntity> {
         if(bundle != null){
         if(bundle != null){
             type = bundle.getInt("type", 1002);
             type = bundle.getInt("type", 1002);
         }
         }
+//        setPerpage(10);
         return rootView;
         return rootView;
     }
     }
 
 
@@ -96,7 +97,7 @@ public class FgtPlayGameSon extends BaseListFragment<GameEntity> {
 
 
     @Override
     @Override
     public void notifyData() {
     public void notifyData() {
-        bottomLine.setVisibility(View.GONE);
+//        bottomLine.setVisibility(View.GONE);
         if(isSelected)
         if(isSelected)
             EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_PLAY_GAME_REFRESH_H));
             EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.FGT_PLAY_GAME_REFRESH_H));
     }
     }
@@ -110,4 +111,9 @@ public class FgtPlayGameSon extends BaseListFragment<GameEntity> {
     public void setSelected(boolean selected) {
     public void setSelected(boolean selected) {
         isSelected = selected;
         isSelected = selected;
     }
     }
+
+    @Override
+    protected boolean isFirstGetACache() {
+        return false;
+    }
 }
 }