增加首页自动刷新逻辑
This commit is contained in:
@@ -61,7 +61,7 @@ public class PartyMagicIndicatorAdapter extends CommonNavigatorAdapter {
|
||||
@Override
|
||||
public IPagerIndicator getIndicator(Context context) {
|
||||
WrapPagerIndicator indicator = new WrapPagerIndicator(context);
|
||||
indicator.setFillColor(Color.parseColor("#FFFFA936"));
|
||||
indicator.setFillColor(Color.parseColor("#FFFFCB47"));
|
||||
return indicator;
|
||||
}
|
||||
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package com.yizhuan.erban.home.fragment
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
@@ -17,9 +18,14 @@ import com.yizhuan.erban.ui.widget.OnPageSelectedListener
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
|
||||
import com.yizhuan.xchat_android_core.UriProvider
|
||||
import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import java.util.*
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
/**
|
||||
* 大鹅开黑首页
|
||||
@@ -54,8 +60,15 @@ class HomeFragment : BaseFragment(), View.OnClickListener,
|
||||
mBinding.click = this
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
override fun initiate() {
|
||||
initTitleTab()
|
||||
Observable.interval(15,TimeUnit.SECONDS)
|
||||
.compose(bindToLifecycle())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe {
|
||||
EventBus.getDefault().post(RefreshHomeDataEvent())
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -92,7 +92,7 @@ public class HomePlayFragment extends BaseFragment {
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onLoadLoginUserInfoEvent(RefreshHomeDataEvent event) {
|
||||
public void onRefreshHomeDataEvent(RefreshHomeDataEvent event) {
|
||||
loadData(true);
|
||||
}
|
||||
|
||||
|
@@ -17,12 +17,16 @@ import com.yizhuan.erban.base.BaseFragment;
|
||||
import com.yizhuan.erban.common.NoDataFragment;
|
||||
import com.yizhuan.erban.home.adapter.HomeRoomFragmentAdapter;
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeTabMapInfo;
|
||||
import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent;
|
||||
import com.yizhuan.xchat_android_core.home.model.GameHomeModel;
|
||||
import com.yizhuan.xchat_android_core.initial.InitialModel;
|
||||
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.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
@@ -35,57 +39,18 @@ import java.util.concurrent.CancellationException;
|
||||
*/
|
||||
public class HomeTabHomeFragment extends BaseFragment {
|
||||
public static final int ROWS = 3;
|
||||
private static final String PARAM_TAB_ID = "tabId";
|
||||
private static final Comparator<HomeTabMapInfo> comp = (o1, o2) -> {
|
||||
int seq = o1.getSeq() - o2.getSeq();
|
||||
return Integer.compare(seq, 0);
|
||||
};
|
||||
private RecyclerView recyclerView;
|
||||
private String tabId;
|
||||
private HomeRoomFragmentAdapter mHomeRoomAdapter;
|
||||
private Handler handler = new Handler();
|
||||
private Runnable runnable;
|
||||
|
||||
|
||||
public static HomeTabHomeFragment newInstance(int tabId) {
|
||||
|
||||
Bundle args = new Bundle();
|
||||
args.putString(PARAM_TAB_ID, String.valueOf(tabId));
|
||||
public static HomeTabHomeFragment newInstance() {
|
||||
HomeTabHomeFragment fragment = new HomeTabHomeFragment();
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
public HomeTabHomeFragment() {
|
||||
// Required empty public constructor
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (getArguments() != null) {
|
||||
tabId = getArguments().getString(PARAM_TAB_ID);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
stopTimer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
// stopTimer();
|
||||
}
|
||||
|
||||
private void stopTimer() {
|
||||
handler.removeCallbacks(runnable);
|
||||
runnable = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_home_room_tab;
|
||||
@@ -98,14 +63,13 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
initRecyclerView();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 请求数据
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
private void getData() {
|
||||
GameHomeModel.get()
|
||||
.getHomeTabHome(tabId)
|
||||
.getHomeTabHome()
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
.compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
|
||||
.subscribe((serviceResult, throwable) -> {
|
||||
@@ -146,20 +110,6 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
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) {
|
||||
handler.removeCallbacks(runnable);
|
||||
}
|
||||
runnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (getActivity() != null) {
|
||||
mHomeRoomAdapter.setNewData(getConvertData(finalList1, randomList1));
|
||||
handler.postDelayed(this, REFRESH_SPEED);
|
||||
}
|
||||
}
|
||||
};
|
||||
handler.postDelayed(runnable, REFRESH_SPEED);
|
||||
}
|
||||
|
||||
private void initRecyclerView() {
|
||||
@@ -213,11 +163,6 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
Collections.sort(list, comp);
|
||||
}
|
||||
|
||||
private static Comparator<HomeTabMapInfo> comp = (o1, o2) -> {
|
||||
int seq = o1.getSeq() - o2.getSeq();
|
||||
return Integer.compare(seq, 0);
|
||||
};
|
||||
|
||||
private List<HomeTabMapInfo> randomList(List<HomeTabMapInfo> sourceList) {
|
||||
if (sourceList == null || sourceList.size() == 0) {
|
||||
return sourceList;
|
||||
@@ -237,30 +182,9 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void setUserVisibleHint(boolean isVisibleToUser) {
|
||||
super.setUserVisibleHint(isVisibleToUser);
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onRefreshHomeDataEvent(RefreshHomeDataEvent event) {
|
||||
getData();
|
||||
}
|
||||
|
||||
@SuppressLint("ResourceType")
|
||||
@Override
|
||||
public void showNoData(View view, int drawable, CharSequence charSequence) {
|
||||
if (!checkActivityValid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (view == null) {
|
||||
MLog.error(this, "xuwakao, showNoData view is NULL");
|
||||
return;
|
||||
}
|
||||
View status = view.findViewById(R.id.status_layout);
|
||||
if (status == null || status.getId() <= 0) {
|
||||
MLog.error(this, "xuwakao, had not set layout id ");
|
||||
return;
|
||||
}
|
||||
NoDataFragment fragment = NoDataFragment.newInstance(R.layout.layout_home_empty_no_header, drawable, charSequence);
|
||||
fragment.setListener(getLoadListener());
|
||||
getChildFragmentManager().beginTransaction().replace(status.getId(), fragment, STATUS_TAG).commitAllowingStateLoss();
|
||||
}
|
||||
}
|
||||
|
@@ -116,7 +116,7 @@ class PartyFragment : BaseFragment(), PartyMagicIndicatorAdapter.OnItemSelectLis
|
||||
magicIndicatorAdapter.setOnItemSelectListener(this)
|
||||
commonNavigator.adapter = magicIndicatorAdapter
|
||||
mBinding.magicIndicator.navigator = commonNavigator
|
||||
mBinding.viewPager.offscreenPageLimit = 5
|
||||
mBinding.viewPager.offscreenPageLimit = 2
|
||||
mBinding.viewPager.adapter = RoomVPAdapter(
|
||||
childFragmentManager,
|
||||
mFragments
|
||||
@@ -133,7 +133,7 @@ class PartyFragment : BaseFragment(), PartyMagicIndicatorAdapter.OnItemSelectLis
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
|
||||
if (isResumed) homeViewModel.getTagInfo()
|
||||
}
|
||||
|
||||
override fun onItemSelect(position: Int, view: TextView?) {
|
||||
|
@@ -72,7 +72,7 @@ class RecommendFragment : BaseFragment(),
|
||||
initTitleTab()
|
||||
childFragmentManager
|
||||
.beginTransaction()
|
||||
.replace(R.id.fg_recommend_room, HomeTabHomeFragment.newInstance(0))
|
||||
.replace(R.id.fg_recommend_room, HomeTabHomeFragment.newInstance())
|
||||
.commitAllowingStateLoss()
|
||||
|
||||
homeViewModel.bannerLiveData.observe(this) {
|
||||
@@ -185,9 +185,11 @@ class RecommendFragment : BaseFragment(),
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) {
|
||||
homeViewModel.getBannerInfo()
|
||||
homeViewModel.getHomeResource()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
|
@@ -12,6 +12,9 @@ import com.yizhuan.erban.home.HomeViewModel
|
||||
import com.yizhuan.erban.home.adapter.RoomCommonAdapter
|
||||
import com.yizhuan.erban.ui.utils.RVDelegate
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo
|
||||
import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
class RoomCommonFragment : BaseViewBindingFragment<FragmentRoomCommonBinding>() {
|
||||
|
||||
@@ -29,12 +32,13 @@ class RoomCommonFragment : BaseViewBindingFragment<FragmentRoomCommonBinding>()
|
||||
private var pageNum: Int = 1
|
||||
private val pageSize = 20
|
||||
|
||||
private val mAdapter = RoomCommonAdapter()
|
||||
private lateinit var mAdapter: RoomCommonAdapter
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private val homeViewModel: HomeViewModel by viewModels()
|
||||
|
||||
override fun init() {
|
||||
mAdapter = RoomCommonAdapter()
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(mAdapter)
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
@@ -69,4 +73,9 @@ class RoomCommonFragment : BaseViewBindingFragment<FragmentRoomCommonBinding>()
|
||||
pageNum = if (isRefresh) 1 else (pageNum + 1)
|
||||
homeViewModel.getCommonRoom(tabID, pageNum, pageSize)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
}
|
||||
|
@@ -11,6 +11,9 @@ import com.yizhuan.erban.home.HomeViewModel
|
||||
import com.yizhuan.erban.home.adapter.RoomGameAdapter
|
||||
import com.yizhuan.erban.ui.utils.RVDelegate
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo
|
||||
import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
class RoomGameFragment : BaseViewBindingFragment<FragmentRoomGameBinding>() {
|
||||
|
||||
@@ -23,13 +26,14 @@ class RoomGameFragment : BaseViewBindingFragment<FragmentRoomGameBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
private val roomHotAdapter = RoomGameAdapter()
|
||||
private lateinit var roomHotAdapter : RoomGameAdapter
|
||||
private var page = 1
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
private val pageSize = 20
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
|
||||
override fun init() {
|
||||
roomHotAdapter = RoomGameAdapter()
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(roomHotAdapter)
|
||||
.setRecyclerView(binding.recyclerView)
|
||||
@@ -75,4 +79,9 @@ class RoomGameFragment : BaseViewBindingFragment<FragmentRoomGameBinding>() {
|
||||
}
|
||||
homeViewModel.getGameRoom(page, pageSize)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
}
|
@@ -10,6 +10,9 @@ import com.yizhuan.erban.home.HomeViewModel
|
||||
import com.yizhuan.erban.home.adapter.RoomHotAdapter
|
||||
import com.yizhuan.erban.ui.utils.RVDelegate
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo
|
||||
import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
|
||||
class RoomHotFragment : BaseViewBindingFragment<FragmentRoomHotBinding>() {
|
||||
@@ -23,13 +26,15 @@ class RoomHotFragment : BaseViewBindingFragment<FragmentRoomHotBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
private val roomHotAdapter = RoomHotAdapter()
|
||||
private var page = 1
|
||||
private lateinit var roomHotAdapter : RoomHotAdapter
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private var page = 1
|
||||
private val pageSize = Int.MAX_VALUE
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
|
||||
override fun init() {
|
||||
roomHotAdapter = RoomHotAdapter()
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(roomHotAdapter)
|
||||
.setRecyclerView(binding.recyclerView)
|
||||
@@ -51,4 +56,9 @@ class RoomHotFragment : BaseViewBindingFragment<FragmentRoomHotBinding>() {
|
||||
private fun loadData(isRefresh: Boolean) {
|
||||
homeViewModel.getHotRoom(page, pageSize)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
}
|
@@ -15,6 +15,9 @@ import com.yizhuan.erban.home.adapter.RoomLikeAdapter
|
||||
import com.yizhuan.erban.ui.relation.AttentionListActivity
|
||||
import com.yizhuan.erban.ui.utils.RVDelegate
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo
|
||||
import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
|
||||
class RoomLikeFragment : BaseViewBindingFragment<FragmentRoomLikeBinding>() {
|
||||
@@ -28,10 +31,10 @@ class RoomLikeFragment : BaseViewBindingFragment<FragmentRoomLikeBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
private val concernsAdapter = HomeConcernsAdapter()
|
||||
private lateinit var concernsAdapter : HomeConcernsAdapter
|
||||
private lateinit var likeRvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private val mAdapter = RoomLikeAdapter()
|
||||
private lateinit var mAdapter : RoomLikeAdapter
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
private var pageNum = 1
|
||||
private val pageSize = 20
|
||||
@@ -43,7 +46,7 @@ class RoomLikeFragment : BaseViewBindingFragment<FragmentRoomLikeBinding>() {
|
||||
AppBarLayout.OnOffsetChangedListener { _, verticalOffset ->
|
||||
binding.refreshLayout.isEnabled = verticalOffset == 0
|
||||
})
|
||||
|
||||
concernsAdapter = HomeConcernsAdapter()
|
||||
likeRvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(concernsAdapter)
|
||||
.setRecyclerView(binding.rvLike)
|
||||
@@ -57,7 +60,7 @@ class RoomLikeFragment : BaseViewBindingFragment<FragmentRoomLikeBinding>() {
|
||||
binding.tvLike.isGone = isGone
|
||||
binding.rvLike.isGone = isGone
|
||||
}
|
||||
|
||||
mAdapter = RoomLikeAdapter()
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(mAdapter)
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
@@ -112,5 +115,9 @@ class RoomLikeFragment : BaseViewBindingFragment<FragmentRoomLikeBinding>() {
|
||||
homeViewModel.getCollectRoom(pageNum, pageSize)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
|
||||
}
|
@@ -35,7 +35,7 @@
|
||||
android:layout_marginEnd="2dp"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:textColor="@color/white"
|
||||
android:textColor="@color/text_title_white"
|
||||
android:textSize="15sp"
|
||||
tools:text="我的我的我的我的我的我的"
|
||||
app:layout_flexShrink="1"
|
||||
|
@@ -35,7 +35,7 @@ public class GameHomeModel extends BaseModel {
|
||||
}
|
||||
|
||||
|
||||
public Single<List<HomeTabMapInfo>> getHomeTabHome(String tabId) {
|
||||
public Single<List<HomeTabMapInfo>> getHomeTabHome() {
|
||||
return api.apiHomeTabHome(null, String.valueOf(AuthModel.get().getCurrentUid()),
|
||||
CommunityConstant.VERSION_VALID_TYPE,
|
||||
AuthModel.get().getTicket())
|
||||
|
Reference in New Issue
Block a user