首页自动刷新逻辑修改

This commit is contained in:
huangjian
2020-05-14 19:20:35 +08:00
parent c3469a7c21
commit c5e41caa15

View File

@@ -38,11 +38,10 @@ public class HomeTabHomeFragment extends LazyLoadFragment {
private RecyclerView recyclerView;
private String tabId;
private HomeRoomFragmentAdapter mHomeRoomAdapter;
private Handler handler = new Handler();
private Handler handler = new Handler();
private Runnable runnable;
public static HomeTabHomeFragment newInstance(int tabId) {
Bundle args = new Bundle();
@@ -78,7 +77,7 @@ public class HomeTabHomeFragment extends LazyLoadFragment {
// stopTimer();
}
private void stopTimer(){
private void stopTimer() {
handler.removeCallbacks(runnable);
runnable = null;
}
@@ -101,7 +100,6 @@ public class HomeTabHomeFragment extends LazyLoadFragment {
}
/**
* 请求数据
*/
@@ -113,7 +111,7 @@ public class HomeTabHomeFragment extends LazyLoadFragment {
.compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
.subscribe((serviceResult, throwable) -> {
if (throwable == null) {
if (ListUtils.isListEmpty(serviceResult)){
if (ListUtils.isListEmpty(serviceResult)) {
return;
}
@@ -125,14 +123,14 @@ public class HomeTabHomeFragment extends LazyLoadFragment {
roomsList.get(i).setItemType(HomeTabMapInfo.TYPE_NORMAL);//对原始数据设置type
}
for (int i = 0; i < roomsList.size(); i++) {
if (roomsList.get(i).isIsTop()){
if (roomsList.get(i).isIsTop()) {
finalList.add(roomsList.get(i));
}else {
} else {
randomList.add(roomsList.get(i));
}
}
sortSeqRoom(finalList);
refreshRoomData(finalList,randomList);
refreshRoomData(finalList, randomList);
} else {
if (!(throwable instanceof CancellationException)) {
@@ -145,30 +143,30 @@ public class HomeTabHomeFragment extends LazyLoadFragment {
/**
* 刷新数据
*/
private void refreshRoomData(List<HomeTabMapInfo> finalList,List<HomeTabMapInfo> randomList){
private void refreshRoomData(List<HomeTabMapInfo> finalList, List<HomeTabMapInfo> randomList) {
List<HomeTabMapInfo> finalList1 = new ArrayList<>(finalList);//最终的6条数据
List<HomeTabMapInfo> randomList1 = new ArrayList<>(randomList);//不是置顶的
mHomeRoomAdapter.setNewData(getConvertData(finalList1,randomList1));
int REFRESH_SPEED = InitialModel.get().getRoomRefresh() > 0?InitialModel.get().getRoomRefresh()*1000:10000;//默认10秒
if (runnable != null){
return;
mHomeRoomAdapter.setNewData(getConvertData(finalList1, randomList1));
int REFRESH_SPEED = InitialModel.get().getRoomRefresh() > 0 ? InitialModel.get().getRoomRefresh() * 1000 : 10000;//默认10秒
if (runnable != null) {
handler.removeCallbacks(runnable);
}
runnable = new Runnable() {
@Override
public void run() {
if (getActivity() != null) {
mHomeRoomAdapter.setNewData(getConvertData(finalList1,randomList1));
mHomeRoomAdapter.setNewData(getConvertData(finalList1, randomList1));
handler.postDelayed(this, REFRESH_SPEED);
}
}
};
handler.postDelayed(runnable,REFRESH_SPEED);
handler.postDelayed(runnable, REFRESH_SPEED);
}
private void initRecyclerView() {
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setItemAnimator(null);
mHomeRoomAdapter = new HomeRoomFragmentAdapter(getContext(),null,true);
mHomeRoomAdapter = new HomeRoomFragmentAdapter(getContext(), null, true);
mHomeRoomAdapter.setEnableLoadMore(false);
GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), ROWS);
mHomeRoomAdapter.setEnableLoadMore(false);
@@ -183,20 +181,21 @@ public class HomeTabHomeFragment extends LazyLoadFragment {
/**
* 转化房间数组不足6的加上虚位以待
*
* @param
* @return
*/
private List<HomeTabMapInfo> getConvertData(List<HomeTabMapInfo> finalList,List<HomeTabMapInfo> randomList) {
private List<HomeTabMapInfo> getConvertData(List<HomeTabMapInfo> finalList, List<HomeTabMapInfo> randomList) {
List<HomeTabMapInfo> finalList1 = new ArrayList<>(finalList);//最终的6条数据
List<HomeTabMapInfo> randomList1 = new ArrayList<>(randomList);//不是置顶的
int ROOM_COUNT = 6;//首页显示6条数据
randomList1 = randomList(randomList1);
finalList1.addAll(randomList1);
if (finalList1.size() >= ROOM_COUNT){
finalList1 = finalList1.subList(0,ROOM_COUNT);
}else {
while (finalList1.size() < ROOM_COUNT){
if (finalList1.size() >= ROOM_COUNT) {
finalList1 = finalList1.subList(0, ROOM_COUNT);
} else {
while (finalList1.size() < ROOM_COUNT) {
HomeTabMapInfo info = new HomeTabMapInfo();
info.setItemType(HomeTabMapInfo.TYPE_EMPTY);
finalList1.add(info);