首页自动刷新逻辑修改

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