Update HomeTabHomeFragment.java
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user