diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/HomeRoomFragmentAdapter.java b/app/src/main/java/com/yizhuan/erban/home/adapter/HomeRoomFragmentAdapter.java index d7dc28c9b..46f13ebfb 100644 --- a/app/src/main/java/com/yizhuan/erban/home/adapter/HomeRoomFragmentAdapter.java +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/HomeRoomFragmentAdapter.java @@ -29,15 +29,16 @@ public class HomeRoomFragmentAdapter extends BaseMultiItemQuickAdapter data) { + public HomeRoomFragmentAdapter(Context context, List data,boolean isHome) { super(data); addItemType(HomeTabMapInfo.TYPE_NORMAL,R.layout.item_home_tab_map); addItemType(HomeTabMapInfo.TYPE_EMPTY,R.layout.item_erban_grid_empty); this.mContext = context; - + this.mIsHome = isHome; mBadgeHeight = (int) context.getResources().getDimension(R.dimen.tag_height); } @@ -61,14 +62,23 @@ public class HomeRoomFragmentAdapter extends BaseMultiItemQuickAdapter { -// if (verticalOffset == 0) -// { -// LogUtils.e("展开状态"); -// mBinding.collapsingLayout.setContentScrim(null); -// } -// else if (Math.abs(verticalOffset) >= appBarLayout.getTotalScrollRange()) -// { -// LogUtils.e("折叠状态"); -// mBinding.collapsingLayout.setContentScrimResource(R.color.color_7154EE); -// } -// else -// { -// LogUtils.e("中间状态"); -// mBinding.collapsingLayout.setContentScrimResource(R.color.color_7154EE); -// } -// }); } private void initRefreshView() { +// scrollToTop(); mBinding.appBar.addOnOffsetChangedListener((appBarLayout, i) -> { if (i >= 0) { mBinding.refreshLayout.setEnabled(true); //当滑动到顶部的时候开启 @@ -347,54 +329,8 @@ public class GameHomeFragment extends BaseMvpFragment adapter, int position) { - if (DemoCache.readFirstMatchDialog()) { - DemoCache.saveFirstMatchDialog(); - getDialogManager().showOkCancelDialog("匹配玩家将关闭当前房间(进房限制取消)并解散房内的用户", - true, new DialogManager.OkCancelDialogListener() { - @Override - public void onCancel() { - } - - @Override - public void onOk() { - getDialogManager().showProgressDialog(getActivity()); - AvRoomModel.get().exitRoom(new CallBack() { - @Override - public void onSuccess(RoomInfo data) { - getDialogManager().dismissDialog(); - MatchActivity.start(getActivity(), adapter.getItem(position)); - } - - @Override - public void onFail(int code, String error) { - getDialogManager().dismissDialog(); - toast("退出房间失败"); - } - }); - - } - }); - } else { - getDialogManager().showProgressDialog(getActivity()); - AvRoomModel.get().exitRoom(new CallBack() { - @Override - public void onSuccess(RoomInfo data) { - getDialogManager().dismissDialog(); - MatchActivity.start(getActivity(), adapter.getItem(position)); - } - - @Override - public void onFail(int code, String error) { - getDialogManager().dismissDialog(); - toast("退出房间失败"); - } - }); - } - } private void openRoom() { UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); @@ -444,19 +380,19 @@ public class GameHomeFragment extends BaseMvpFragment list = adapter.getData(); if (position >= 0 && position < list.size()) { HomeConcernsInfo record = list.get(position); @@ -615,7 +555,7 @@ public class GameHomeFragment extends BaseMvpFragment getHomeBanner(int num) { - int count = mBinding.recyclerView.getChildCount(); - if (count == 0) { - return null; - } - if (num < count) { - count = num; - } - List list = new ArrayList<>(); - for (int i = 0; i < count; i++) { - View view = mBinding.recyclerView.getChildAt(i); - if (view != null) { - list.add(view); - } - } - return list; - - } - /** * 判断是否要显示首页引导 */ diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeDynamicFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeDynamicFragment.java index a7b534f33..711313810 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeDynamicFragment.java +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeDynamicFragment.java @@ -130,6 +130,7 @@ public class HomeDynamicFragment extends BaseFragment{ public void run() { if (getActivity() != null) { // dynamicAdapter.openLoadAnimation(BaseQuickAdapter.SCALEIN); + dynamicAdapter.addData(0,dynamicList.get(dynamicList.size()-1)); dynamicAdapter.remove(dynamicList.size()-1); dynamicAdapter.notifyDataSetChanged(); 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 9cd3d657e..3d37ad1ff 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 @@ -11,6 +11,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; @@ -22,6 +23,8 @@ import com.yizhuan.xchat_android_core.utils.net.RxHelper; import com.yizhuan.xchat_android_library.utils.log.MLog; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; import java.util.Random; import java.util.concurrent.CancellationException; @@ -35,8 +38,6 @@ public class HomeTabHomeFragment extends BaseFragment { private RecyclerView recyclerView; private String tabId; private HomeRoomFragmentAdapter mHomeRoomAdapter; - private final List allRoomList = new ArrayList<>(); - private final int ROOM_COUNT = 6; private Handler handler = new Handler(); private Runnable runnable; @@ -112,9 +113,23 @@ public class HomeTabHomeFragment extends BaseFragment { .compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW)) .subscribe((serviceResult, throwable) -> { if (throwable == null) { - allRoomList.clear(); - allRoomList.addAll(serviceResult); - refreshRoomData(); + List roomsList = new ArrayList<>(serviceResult);//未处理的数 + List randomList = new ArrayList<>();//不是置顶的 + List finalList = new ArrayList<>();//最终的6条数据 + + for (int i = 0; i < roomsList.size(); i++) { + roomsList.get(i).setItemType(HomeTabMapInfo.TYPE_NORMAL);//对原始数据设置type + } + for (int i = 0; i < roomsList.size(); i++) { + if (roomsList.get(i).isIsTop()){ + finalList.add(roomsList.get(i)); + }else { + randomList.add(roomsList.get(i)); + } + } + sortSeqRoom(finalList); + refreshRoomData(finalList,randomList); + } else { if (!(throwable instanceof CancellationException)) { toast("请求失败,请稍后再试!!" + throwable.getMessage()); @@ -126,8 +141,10 @@ public class HomeTabHomeFragment extends BaseFragment { /** * 刷新数据 */ - private void refreshRoomData(){ - mHomeRoomAdapter.setNewData(getConvertData(allRoomList)); + private void refreshRoomData(List finalList,List randomList){ + List finalList1 = new ArrayList<>(finalList);//最终的6条数据 + List randomList1 = new ArrayList<>(randomList);//不是置顶的 + mHomeRoomAdapter.setNewData(getConvertData(finalList1,randomList1)); if (runnable != null){ return; } @@ -135,7 +152,7 @@ public class HomeTabHomeFragment extends BaseFragment { @Override public void run() { if (getActivity() != null) { - mHomeRoomAdapter.setNewData(getConvertData(allRoomList)); + mHomeRoomAdapter.setNewData(getConvertData(finalList1,randomList1)); handler.postDelayed(this, 3000); } } @@ -146,7 +163,7 @@ public class HomeTabHomeFragment extends BaseFragment { private void initRecyclerView() { recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); recyclerView.setItemAnimator(null); - mHomeRoomAdapter = new HomeRoomFragmentAdapter(getContext(),null); + mHomeRoomAdapter = new HomeRoomFragmentAdapter(getContext(),null,true); mHomeRoomAdapter.setEnableLoadMore(false); GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), ROWS); mHomeRoomAdapter.setEnableLoadMore(false); @@ -161,29 +178,43 @@ public class HomeTabHomeFragment extends BaseFragment { /** * 转化房间数组,不足6的加上虚位以待 - * @param itemList + * @param * @return */ - private List getConvertData(List itemList) { - List sixRoomsList = new ArrayList<>(itemList); - int ROOM_COUNT = 6; - for (int i = 0; i < sixRoomsList.size(); i++) { - sixRoomsList.get(i).setItemType(HomeTabMapInfo.TYPE_NORMAL); - } - - if (sixRoomsList.size() >= ROOM_COUNT){ - sixRoomsList = randomList(sixRoomsList); - sixRoomsList = sixRoomsList.subList(0,ROOM_COUNT); + private List getConvertData(List finalList,List randomList) { + List finalList1 = new ArrayList<>(finalList);//最终的6条数据 + List randomList1 = new ArrayList<>(randomList);//不是置顶的 + int ROOM_COUNT = 6;//首页显示6条数据 + randomList1 = randomList(randomList1); + finalList1.addAll(randomList1); + + if (finalList1.size() >= ROOM_COUNT){ + finalList1 = finalList1.subList(0,ROOM_COUNT); }else { - while (sixRoomsList.size() < ROOM_COUNT){ + while (finalList1.size() < ROOM_COUNT){ HomeTabMapInfo info = new HomeTabMapInfo(); info.setItemType(HomeTabMapInfo.TYPE_EMPTY); - sixRoomsList.add(info); + finalList1.add(info); } } - return sixRoomsList; + return finalList1; } + /** + * **************************** 排序 *********************************** + */ + private void sortSeqRoom(List list) { + if (list.size() == 0) { + return; + } + 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; diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabMapFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabMapFragment.java index bcda57401..67849e21c 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabMapFragment.java +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabMapFragment.java @@ -90,7 +90,7 @@ public class HomeTabMapFragment extends BaseMvpFragment views = ((GameHomeFragment) fragment).getHomeBanner(3); - if (views == null) { - return; - } - int count = recyclerView.getChildCount(); - if (count < 1) { - return; - } - View view = recyclerView.getChildAt(1); - if (view == null) { - return; - } - view = view.findViewById(R.id.ll_left_content); - if (view == null) { - return; - } - View finalView = view; - TuTuGuideHelper helper = new TuTuGuideHelper(getContext()); - helper.createHiGuide(() -> helper.createMainHomeGuide(views, finalView)); - TuTuGuideHelper.setNoNeedHiGuide(TuTuGuideHelper.KEY_GUIDE_MAIN_HOME); - } - }, 500); - } - - } } diff --git a/app/src/main/java/com/yizhuan/erban/home/presenter/MainFragmentPresenter.java b/app/src/main/java/com/yizhuan/erban/home/presenter/MainFragmentPresenter.java index b6a0ca331..0856c54df 100644 --- a/app/src/main/java/com/yizhuan/erban/home/presenter/MainFragmentPresenter.java +++ b/app/src/main/java/com/yizhuan/erban/home/presenter/MainFragmentPresenter.java @@ -23,6 +23,7 @@ import com.yizhuan.xchat_android_core.user.AttentionModel; import com.yizhuan.xchat_android_core.user.bean.AttentionInfo; import com.yizhuan.xchat_android_core.utils.net.BeanObserver; import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver; +import com.yizhuan.xchat_android_core.utils.net.RxHelper; import com.yizhuan.xchat_android_library.base.PresenterEvent; import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack; @@ -372,7 +373,8 @@ public class MainFragmentPresenter extends BaseMvpPresenter { @SuppressLint("CheckResult") public void getHomeConcerns(){ - com.yizhuan.erban.home.model.HomeModel.get().getHomeConcerns().subscribe((result, throwable) -> { + com.yizhuan.erban.home.model.HomeModel.get().getHomeConcerns().compose(RxHelper.handleException()) + .subscribe((result, throwable) -> { if (throwable != null) { if (mMvpView != null) { mMvpView.getFollowRoomFail(); diff --git a/app/src/main/java/com/yizhuan/erban/ui/search/SearchActivity.java b/app/src/main/java/com/yizhuan/erban/ui/search/SearchActivity.java index 271dd5349..7e02c541c 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/search/SearchActivity.java +++ b/app/src/main/java/com/yizhuan/erban/ui/search/SearchActivity.java @@ -33,6 +33,7 @@ import com.yizhuan.erban.friend.action.AbstractSelectFriendAction; import com.yizhuan.erban.friend.view.SelectFriendActivity; import com.yizhuan.erban.home.adapter.ContactsIndicatorAdapter; import com.yizhuan.erban.home.adapter.FragmentViewPagerAdapter; +import com.yizhuan.erban.ui.search.event.SearchEvent; import com.yizhuan.erban.ui.search.presenter.SearchPresenter; import com.yizhuan.erban.ui.search.view.ISearchView; import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator; @@ -59,6 +60,8 @@ import com.yizhuan.xchat_android_library.utils.JavaUtil; import com.yizhuan.xchat_android_library.utils.SingleToastUtil; import com.yizhuan.xchat_android_library.utils.SizeUtils; +import org.greenrobot.eventbus.EventBus; + import java.util.ArrayList; import java.util.List; @@ -218,9 +221,10 @@ public class SearchActivity extends BaseMvpActivity mTabs = new ArrayList<>(); - mTabs.add(SearchDetailFragment.newInstance(str,SearchDetailFragment.TYPE_SEARCH_ROOM)); - mTabs.add(SearchDetailFragment.newInstance(str,SearchDetailFragment.TYPE_SEARCH_USER)); - + SearchDetailFragment roomFrg = new SearchDetailFragment(str,SearchDetailFragment.TYPE_SEARCH_ROOM); + SearchDetailFragment userFrg = new SearchDetailFragment(str,SearchDetailFragment.TYPE_SEARCH_USER); + mTabs.add(roomFrg); + mTabs.add(userFrg); ContactsIndicatorAdapter topMagicIndicatorAdapter = new ContactsIndicatorAdapter(this, mTabInfoList,0); topMagicIndicatorAdapter.setOnItemSelectListener(this); CommonNavigator commonNavigator = new CommonNavigator(this); @@ -557,6 +561,7 @@ public class SearchActivity extends BaseMvpActivity 0 ? View.VISIBLE : View.GONE); diff --git a/app/src/main/java/com/yizhuan/erban/ui/search/SearchDetailFragment.java b/app/src/main/java/com/yizhuan/erban/ui/search/SearchDetailFragment.java index d1e27cbcd..ab96a6ea1 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/search/SearchDetailFragment.java +++ b/app/src/main/java/com/yizhuan/erban/ui/search/SearchDetailFragment.java @@ -1,25 +1,25 @@ package com.yizhuan.erban.ui.search; import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.coorchice.library.utils.LogUtils; -import com.netease.nim.uikit.common.util.log.LogUtil; import com.yizhuan.erban.R; import com.yizhuan.erban.base.BaseMvpFragment; +import com.yizhuan.erban.ui.search.event.SearchEvent; import com.yizhuan.erban.ui.search.presenter.SearchPresenter; import com.yizhuan.erban.ui.search.view.ISearchView; -import com.yizhuan.xchat_android_core.Constants; import com.yizhuan.xchat_android_core.bean.RoomHistoryInfo; import com.yizhuan.xchat_android_core.room.bean.SearchRoomInfo; import com.yizhuan.xchat_android_library.base.factory.CreatePresenter; +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + import java.util.List; @CreatePresenter(SearchPresenter.class) @@ -32,24 +32,29 @@ public class SearchDetailFragment extends BaseMvpFragment diff --git a/app/src/main/res/layout/activity_home_more_room.xml b/app/src/main/res/layout/activity_home_more_room.xml index 10a3bf990..a1d57bdae 100644 --- a/app/src/main/res/layout/activity_home_more_room.xml +++ b/app/src/main/res/layout/activity_home_more_room.xml @@ -23,33 +23,43 @@ app:layout_constraintTop_toTopOf="parent" /> - - - - - + android:fillViewport="true" + > + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_user_info.xml b/app/src/main/res/layout/activity_user_info.xml index 333109f32..bab0a5b1b 100644 --- a/app/src/main/res/layout/activity_user_info.xml +++ b/app/src/main/res/layout/activity_user_info.xml @@ -60,20 +60,20 @@ diff --git a/app/src/main/res/layout/dialog_patriarch_mode.xml b/app/src/main/res/layout/dialog_patriarch_mode.xml index 8667b944b..baa9b58d3 100644 --- a/app/src/main/res/layout/dialog_patriarch_mode.xml +++ b/app/src/main/res/layout/dialog_patriarch_mode.xml @@ -63,6 +63,8 @@ android:layout_width="@dimen/dp_25" android:layout_height="@dimen/dp_25" android:contentDescription="@string/close" + android:layout_marginEnd="@dimen/dp_10" + android:layout_marginTop="@dimen/dp_10" android:scaleType="fitCenter" android:src="@drawable/icon_pm_close" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/fragment_game_home.xml b/app/src/main/res/layout/fragment_game_home.xml index 7b63150b1..aef309cda 100644 --- a/app/src/main/res/layout/fragment_game_home.xml +++ b/app/src/main/res/layout/fragment_game_home.xml @@ -37,19 +37,16 @@ android:src="@mipmap/bg_home_top" app:layout_constraintTop_toTopOf="parent" /> - + + + + + + + + + - - - - + - - + app:layout_scrollFlags="scroll|exitUntilCollapsed"> + - - + > + + /> @@ -228,21 +217,6 @@ /> - - - - - @@ -259,7 +233,6 @@ diff --git a/app/src/main/res/layout/fragment_room_rank_half_hour.xml b/app/src/main/res/layout/fragment_room_rank_half_hour.xml index e9bea0184..0b32c2e2d 100644 --- a/app/src/main/res/layout/fragment_room_rank_half_hour.xml +++ b/app/src/main/res/layout/fragment_room_rank_half_hour.xml @@ -86,7 +86,7 @@ android:layout_width="40dp" android:layout_height="40dp" android:layout_marginEnd="10dp" - tools:src="@drawable/about_logo"/> + tools:src="@mipmap/app_logo"/> @@ -337,7 +337,7 @@ android:layout_height="59dp" android:layout_marginTop="15dp" android:layout_centerHorizontal="true" - tools:src="@drawable/about_logo" + tools:src="@mipmap/app_logo" android:visibility="visible"/> - + + + + tools:src="@mipmap/app_logo"/> onLeftClickListener()); - TitleBar.ActionList actionList = new TitleBar.ActionList(); - actionList.add(new TitleBar.Action() { - @Override - public String getText() { - return null; - } - - @Override - public int getDrawable() { - return R.drawable.ic_mini_world_guest_page_more; - } - - @Override - public int getTextColor() { - return 0; - } - - @Override - public int getTextDrawableLeft() { - return 0; - } - - @Override - public void performAction(View view) { - if (easyPopup != null) { - easyPopup.showAtAnchorView(view, - VerticalGravity.BELOW, - HorizontalGravity.ALIGN_RIGHT, - UIUtil.dip2px(context, -15), - UIUtil.dip2px(context, 15)); - } - } - }); - mTitleBar.addActions(actionList); +// TitleBar.ActionList actionList = new TitleBar.ActionList(); +// actionList.add(new TitleBar.Action() { +// @Override +// public String getText() { +// return null; +// } +// +// @Override +// public int getDrawable() { +// return R.drawable.ic_mini_world_guest_page_more; +// } +// +// @Override +// public int getTextColor() { +// return 0; +// } +// +// @Override +// public int getTextDrawableLeft() { +// return 0; +// } +// +// @Override +// public void performAction(View view) { +// if (easyPopup != null) { +// easyPopup.showAtAnchorView(view, +// VerticalGravity.BELOW, +// HorizontalGravity.ALIGN_RIGHT, +// UIUtil.dip2px(context, -15), +// UIUtil.dip2px(context, 15)); +// } +// } +// }); +// mTitleBar.addActions(actionList); } /** 用于刷新页面判断控件是否展示;*/ diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/UriProvider.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/UriProvider.java index cfe7246b7..c6239a7df 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/UriProvider.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/UriProvider.java @@ -95,6 +95,12 @@ public class UriProvider { return IM_SERVER_URL.concat("/modules/nobles/intro.html"); } + /** + * 贵族介绍页 + */ + public static String getRanking() { + return IM_SERVER_URL.concat("/accompany/modules/rank/index.html#/rank"); + } /** * 等级界面