首页自动刷新逻辑修改
This commit is contained in:
@@ -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);
|
||||||
|
Reference in New Issue
Block a user