From ca07eb1814d8d7879d1d438486c254850667d3ad Mon Sep 17 00:00:00 2001 From: huangjian Date: Wed, 15 Dec 2021 11:51:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=A6=96=E9=A1=B5=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=88=B7=E6=96=B0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/PartyMagicIndicatorAdapter.java | 2 +- .../erban/home/fragment/HomeFragment.kt | 13 +++ .../erban/home/fragment/HomePlayFragment.java | 2 +- .../home/fragment/HomeTabHomeFragment.java | 102 +++--------------- .../erban/home/fragment/PartyFragment.kt | 4 +- .../erban/home/fragment/RecommendFragment.kt | 8 +- .../erban/home/fragment/RoomCommonFragment.kt | 13 ++- .../erban/home/fragment/RoomGameFragment.kt | 11 +- .../erban/home/fragment/RoomHotFragment.kt | 14 ++- .../erban/home/fragment/RoomLikeFragment.kt | 15 ++- .../main/res/layout/attention_item_new.xml | 2 +- .../home/model/GameHomeModel.java | 2 +- 12 files changed, 81 insertions(+), 107 deletions(-) diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/PartyMagicIndicatorAdapter.java b/app/src/main/java/com/yizhuan/erban/home/adapter/PartyMagicIndicatorAdapter.java index f0b5f076d..6311a6297 100644 --- a/app/src/main/java/com/yizhuan/erban/home/adapter/PartyMagicIndicatorAdapter.java +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/PartyMagicIndicatorAdapter.java @@ -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; } diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.kt index a4ab8d5c7..750bf899f 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.kt @@ -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()) + } } /** diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/HomePlayFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/HomePlayFragment.java index 16ea991a7..98b511a82 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/HomePlayFragment.java +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/HomePlayFragment.java @@ -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); } diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabHomeFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabHomeFragment.java index 528db2ebe..76d2888a2 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabHomeFragment.java +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabHomeFragment.java @@ -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 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 finalList1 = new ArrayList<>(finalList);//最终的6条数据 List 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 comp = (o1, o2) -> { - int seq = o1.getSeq() - o2.getSeq(); - return Integer.compare(seq, 0); - }; - private List randomList(List 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(); - } } diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/PartyFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/PartyFragment.kt index d52e22f0e..da0ca82c6 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/PartyFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/PartyFragment.kt @@ -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?) { diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/RecommendFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/RecommendFragment.kt index 81d897c07..016879881 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/RecommendFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/RecommendFragment.kt @@ -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,8 +185,10 @@ class RecommendFragment : BaseFragment(), @Subscribe(threadMode = ThreadMode.MAIN) fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) { - homeViewModel.getBannerInfo() - homeViewModel.getHomeResource() + if (isResumed) { + homeViewModel.getBannerInfo() + homeViewModel.getHomeResource() + } } diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomCommonFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomCommonFragment.kt index cfa770578..51110479d 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomCommonFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomCommonFragment.kt @@ -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() { @@ -29,12 +32,13 @@ class RoomCommonFragment : BaseViewBindingFragment() private var pageNum: Int = 1 private val pageSize = 20 - private val mAdapter = RoomCommonAdapter() + private lateinit var mAdapter: RoomCommonAdapter private lateinit var rvDelegate: RVDelegate private val homeViewModel: HomeViewModel by viewModels() override fun init() { + mAdapter = RoomCommonAdapter() rvDelegate = RVDelegate.Builder() .setAdapter(mAdapter) .setLayoutManager(LinearLayoutManager(mContext)) @@ -64,9 +68,14 @@ class RoomCommonFragment : BaseViewBindingFragment() } @SuppressLint("CheckResult") - fun loadData(isRefresh: Boolean) { + fun loadData(isRefresh: Boolean) { binding.refreshLayout.isRefreshing = isRefresh pageNum = if (isRefresh) 1 else (pageNum + 1) homeViewModel.getCommonRoom(tabID, pageNum, pageSize) } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) { + if (isResumed) loadData(true) + } } diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomGameFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomGameFragment.kt index c54844493..43a16f3dd 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomGameFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomGameFragment.kt @@ -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() { @@ -23,13 +26,14 @@ class RoomGameFragment : BaseViewBindingFragment() { } } - private val roomHotAdapter = RoomGameAdapter() + private lateinit var roomHotAdapter : RoomGameAdapter private var page = 1 private lateinit var rvDelegate: RVDelegate private val pageSize = 20 private val homeViewModel: HomeViewModel by activityViewModels() override fun init() { + roomHotAdapter = RoomGameAdapter() rvDelegate = RVDelegate.Builder() .setAdapter(roomHotAdapter) .setRecyclerView(binding.recyclerView) @@ -75,4 +79,9 @@ class RoomGameFragment : BaseViewBindingFragment() { } homeViewModel.getGameRoom(page, pageSize) } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) { + if (isResumed) loadData(true) + } } \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomHotFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomHotFragment.kt index abe294aba..c4d9ef876 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomHotFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomHotFragment.kt @@ -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() { @@ -23,13 +26,15 @@ class RoomHotFragment : BaseViewBindingFragment() { } } - private val roomHotAdapter = RoomHotAdapter() - private var page = 1 + private lateinit var roomHotAdapter : RoomHotAdapter private lateinit var rvDelegate: RVDelegate + + private var page = 1 private val pageSize = Int.MAX_VALUE private val homeViewModel: HomeViewModel by activityViewModels() override fun init() { + roomHotAdapter = RoomHotAdapter() rvDelegate = RVDelegate.Builder() .setAdapter(roomHotAdapter) .setRecyclerView(binding.recyclerView) @@ -51,4 +56,9 @@ class RoomHotFragment : BaseViewBindingFragment() { private fun loadData(isRefresh: Boolean) { homeViewModel.getHotRoom(page, pageSize) } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) { + if (isResumed) loadData(true) + } } \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomLikeFragment.kt b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomLikeFragment.kt index 74a8f7ce3..0df3812d8 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/RoomLikeFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/RoomLikeFragment.kt @@ -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() { @@ -28,10 +31,10 @@ class RoomLikeFragment : BaseViewBindingFragment() { } } - private val concernsAdapter = HomeConcernsAdapter() + private lateinit var concernsAdapter : HomeConcernsAdapter private lateinit var likeRvDelegate: RVDelegate - private val mAdapter = RoomLikeAdapter() + private lateinit var mAdapter : RoomLikeAdapter private lateinit var rvDelegate: RVDelegate private var pageNum = 1 private val pageSize = 20 @@ -43,7 +46,7 @@ class RoomLikeFragment : BaseViewBindingFragment() { AppBarLayout.OnOffsetChangedListener { _, verticalOffset -> binding.refreshLayout.isEnabled = verticalOffset == 0 }) - + concernsAdapter = HomeConcernsAdapter() likeRvDelegate = RVDelegate.Builder() .setAdapter(concernsAdapter) .setRecyclerView(binding.rvLike) @@ -57,7 +60,7 @@ class RoomLikeFragment : BaseViewBindingFragment() { binding.tvLike.isGone = isGone binding.rvLike.isGone = isGone } - + mAdapter = RoomLikeAdapter() rvDelegate = RVDelegate.Builder() .setAdapter(mAdapter) .setLayoutManager(LinearLayoutManager(mContext)) @@ -112,5 +115,9 @@ class RoomLikeFragment : BaseViewBindingFragment() { homeViewModel.getCollectRoom(pageNum, pageSize) } + @Subscribe(threadMode = ThreadMode.MAIN) + fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) { + if (isResumed) loadData(true) + } } \ No newline at end of file diff --git a/app/src/main/res/layout/attention_item_new.xml b/app/src/main/res/layout/attention_item_new.xml index cce50177d..876a00759 100644 --- a/app/src/main/res/layout/attention_item_new.xml +++ b/app/src/main/res/layout/attention_item_new.xml @@ -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" diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/model/GameHomeModel.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/model/GameHomeModel.java index b9704a254..22501141d 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/model/GameHomeModel.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/home/model/GameHomeModel.java @@ -35,7 +35,7 @@ public class GameHomeModel extends BaseModel { } - public Single> getHomeTabHome(String tabId) { + public Single> getHomeTabHome() { return api.apiHomeTabHome(null, String.valueOf(AuthModel.get().getCurrentUid()), CommunityConstant.VERSION_VALID_TYPE, AuthModel.get().getTicket())