Update HomeTabHomeFragment.java

This commit is contained in:
oujunhui
2020-05-05 10:18:57 +08:00
parent 18e3515cf7
commit 6e81f683ca

View File

@@ -3,6 +3,8 @@ package com.yizhuan.erban.home.fragment;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
@@ -11,6 +13,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.coorchice.library.utils.LogUtils;
import com.trello.rxlifecycle2.android.FragmentEvent;
import com.yizhuan.erban.R;
import com.yizhuan.erban.base.BaseFragment;
@@ -18,16 +21,17 @@ import com.yizhuan.erban.common.NoDataFragment;
import com.yizhuan.erban.home.adapter.HomeRoomFragmentAdapter;
import com.yizhuan.erban.home.bean.HomeTabMapInfo;
import com.yizhuan.erban.home.model.HomeModel;
import com.yizhuan.xchat_android_core.home.bean.HomeItem;
import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils;
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.log.MLog;
import org.greenrobot.eventbus.EventBus;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.CancellationException;
/**
@@ -39,12 +43,11 @@ public class HomeTabHomeFragment extends BaseFragment {
private RecyclerView recyclerView;
private String tabId;
private HomeRoomFragmentAdapter mHomeRoomAdapter;
private List<HomeTabMapInfo> allRoomList = new ArrayList<>();
private final List<HomeTabMapInfo> allRoomList = new ArrayList<>();
private final int ROOM_COUNT = 6;
private Handler handler = new Handler();
private Runnable runnable;
private Handler handler = new Handler();
List<HomeTabMapInfo> sixRoomsList = new ArrayList<>();
public static HomeTabHomeFragment newInstance(int tabId) {
@@ -71,12 +74,22 @@ public class HomeTabHomeFragment extends BaseFragment {
@Override
public void onDestroy() {
super.onDestroy();
handler.removeCallbacks(runnable);
stopTimer();
}
@Override
public void onPause() {
super.onPause();
stopTimer();
}
@Override
public void onResume() {
super.onResume();
getData();
}
private void stopTimer(){
handler.removeCallbacks(runnable);
}
@@ -107,7 +120,7 @@ public class HomeTabHomeFragment extends BaseFragment {
.subscribe((serviceResult, throwable) -> {
if (throwable == null) {
allRoomList.clear();
allRoomList = serviceResult;
allRoomList.addAll(serviceResult);
refreshRoomData();
} else {
if (!(throwable instanceof CancellationException)) {
@@ -122,10 +135,18 @@ public class HomeTabHomeFragment extends BaseFragment {
*/
private void refreshRoomData(){
mHomeRoomAdapter.setNewData(getConvertData(allRoomList));
mHomeRoomAdapter.notifyDataSetChanged();
runnable = new Runnable() {
@Override
public void run() {
if (getActivity() != null) {
mHomeRoomAdapter.setNewData(getConvertData(allRoomList));
handler.postDelayed(this, 3000);
}
}
};
handler.postDelayed(runnable,3000);
}
private void initRecyclerView() {
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setItemAnimator(null);
@@ -142,36 +163,35 @@ public class HomeTabHomeFragment extends BaseFragment {
mHomeRoomAdapter.setEmptyView(emptyView);
}
/**
* 转化房间数组不足6的加上虚位以待
* @param itemList
* @return
*/
private List<HomeTabMapInfo> getConvertData(List<HomeTabMapInfo> itemList) {
sixRoomsList.clear();
List<HomeTabMapInfo> sixRoomsList = new ArrayList<>(itemList);
int ROOM_COUNT = 6;
for (int i = 0; i < itemList.size(); i++) {
itemList.get(i).setItemType(HomeTabMapInfo.TYPE_NORMAL);
for (int i = 0; i < sixRoomsList.size(); i++) {
sixRoomsList.get(i).setItemType(HomeTabMapInfo.TYPE_NORMAL);
}
itemList = randomList(itemList);
if (itemList.size() >= ROOM_COUNT){
for (int i = 0; i < ROOM_COUNT ; i++) {
sixRoomsList.add(itemList.get(i));
}
if (sixRoomsList.size() >= ROOM_COUNT){
sixRoomsList = randomList(sixRoomsList);
sixRoomsList = sixRoomsList.subList(0,ROOM_COUNT);
}else {
while (itemList.size() < ROOM_COUNT){
while (sixRoomsList.size() < ROOM_COUNT){
HomeTabMapInfo info = new HomeTabMapInfo();
info.setItemType(HomeTabMapInfo.TYPE_EMPTY);
itemList.add(info);
sixRoomsList.add(info);
}
sixRoomsList = itemList;
}
return sixRoomsList;
}
public List<HomeTabMapInfo> randomList(List<HomeTabMapInfo> sourceList) {
private List<HomeTabMapInfo> randomList(List<HomeTabMapInfo> sourceList) {
if (sourceList == null || sourceList.size() == 0) {
return sourceList;
}
@@ -186,7 +206,7 @@ public class HomeTabHomeFragment extends BaseFragment {
@Override
public void initiate() {
getData();
// getData();
}
@Override