diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ed3615c63..510c288b7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -902,7 +902,9 @@
-
+
diff --git a/app/src/module_room_chat/res/layout/activity_room_box_ranking.xml b/app/src/module_room_chat/res/layout/activity_room_box_ranking.xml
new file mode 100644
index 000000000..53b31f25c
--- /dev/null
+++ b/app/src/module_room_chat/res/layout/activity_room_box_ranking.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/BoxRankingActivity.java b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/BoxRankingActivity.java
new file mode 100644
index 000000000..7a81a40b5
--- /dev/null
+++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/BoxRankingActivity.java
@@ -0,0 +1,126 @@
+package com.yizhuan.erban.treasure_box.activity;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.TextUtils;
+
+import androidx.fragment.app.Fragment;
+import androidx.viewpager.widget.ViewPager;
+
+import com.flyco.tablayout.SlidingTabLayout;
+import com.yizhuan.erban.R;
+import com.yizhuan.erban.base.BaseActivity;
+import com.yizhuan.erban.common.ViewPagerAdapter;
+import com.yizhuan.erban.decoration.view.widgets.CarMagicIndicator;
+import com.yizhuan.erban.friend.action.AbstractSelectFriendAction;
+import com.yizhuan.erban.treasure_box.fragment.BoxRankingFragment;
+import com.yizhuan.tutu.room_chat.activity.NimRoomP2PMessageActivity;
+import com.yizhuan.tutu.room_chat.event.ClickRootViewEvent;
+import com.yizhuan.tutu.room_chat.fragment.RoomMsgAttentionFragment;
+import com.yizhuan.tutu.room_chat.fragment.RoomMsgFansListFragment;
+import com.yizhuan.tutu.room_chat.fragment.RoomMsgFriendListFragment;
+import com.yizhuan.tutu.room_chat.fragment.RoomMsgRecentListFragment;
+import com.yizhuan.tutu.room_chat.fragment.RoomNewbieListFragment;
+import com.yizhuan.xchat_android_core.home.bean.TabInfo;
+import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
+import com.yizhuan.xchat_android_core.manager.RoomEvent;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+
+
+
+public class BoxRankingActivity extends BaseActivity implements CarMagicIndicator.OnItemSelectListener {
+
+ @BindView(R.id.view_indicator)
+ SlidingTabLayout viewIndicator;
+ @BindView(R.id.viewpager)
+ ViewPager viewpager;
+ private String[] titles = {"今日榜单", "昨日榜单"};
+ private int type = AbstractSelectFriendAction.ROOM_MSG;
+ public static final String KEY_PRIVATE_CHAT_ACCOUNT = "key_private_chat_account";
+
+ public static void start(Context context) {
+ Intent starter = new Intent(context, BoxRankingActivity.class);
+ //starter.putExtra();
+ context.startActivity(starter);
+ }
+
+ public static void startForPrivateChat(Context context, String account) {
+ Intent starter = new Intent(context,BoxRankingActivity.class);
+ starter.putExtra(KEY_PRIVATE_CHAT_ACCOUNT, account);
+ context.startActivity(starter);
+ }
+
+ @SuppressLint("CheckResult")
+ public void init() {
+ List tabInfoList = new ArrayList<>(2);
+ for (int i = 0; i < titles.length; i++) {
+ tabInfoList.add(new TabInfo(i, titles[i]));
+ }
+ viewpager.setOffscreenPageLimit(2);
+ viewpager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(), getFragment(), titles));
+ viewIndicator.setViewPager(viewpager, titles, this, getFragment());
+
+ IMNetEaseManager.get().getChatRoomEventObservable()
+ .compose(bindToLifecycle())
+ .filter(roomEvent -> roomEvent.getEvent() == RoomEvent.KICK_OUT_ROOM)
+ .subscribe(roomEvent -> finish());
+ }
+
+ @Override
+ protected boolean needSteepStateBar() {
+ return false;
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_room_message);
+ ButterKnife.bind(this);
+ init();
+ String account = getIntent().getStringExtra(KEY_PRIVATE_CHAT_ACCOUNT);
+ if (!TextUtils.isEmpty(account)) {
+ NimRoomP2PMessageActivity.start(this, account);
+ }
+ EventBus.getDefault().register(this);
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ EventBus.getDefault().unregister(this);
+ }
+
+ private ArrayList getFragment() {
+ ArrayList list = new ArrayList<>();
+ list.add(BoxRankingFragment.newInstance(true));
+ list.add(BoxRankingFragment.newInstance(true));
+ return list;
+ }
+
+ @Override
+ public void onItemSelect(int position) {
+ viewpager.setCurrentItem(position);
+ }
+
+ @OnClick(R.id.root_view)
+ public void onViewClicked() {
+ finish();
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onRootViewClicked(ClickRootViewEvent event) {
+ onViewClicked();
+ }
+}
\ No newline at end of file
diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java
index ab484891e..71880b49b 100644
--- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java
+++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java
@@ -124,7 +124,8 @@ public class TreasureBoxActivity extends BaseBindingActivity implements IRoomNewbieView, BaseQuickAdapter.RequestLoadMoreListener {
+ private RecyclerView recyclerView;
+ private SwipeRefreshLayout swipeRefresh;
+ private RoomNewbieListAdapter mNewbieListAdapter;
+ private boolean isInRoom;
+
+ public static BoxRankingFragment newInstance(boolean isInRoom) {
+ Bundle args = new Bundle();
+ args.putBoolean("isInRoom",isInRoom);
+ BoxRankingFragment fragment = new BoxRankingFragment();
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ EventBus.getDefault().register(this);
+ if (getArguments() != null) {
+ isInRoom = getArguments().getBoolean("isInRoom");
+ }
+ }
+
+ @Override
+ public int getRootLayoutId() {
+ return R.layout.fragment_newbie_list;
+ }
+
+ @Override
+ public void onFindViews() {
+ recyclerView = mView.findViewById(R.id.recycler_view);
+ swipeRefresh = mView.findViewById(R.id.swipe_refresh);
+ }
+
+ @Override
+ public void onSetListener() {
+ swipeRefresh.setOnRefreshListener(() -> {
+ mNewbieListAdapter.setEnableLoadMore(true);
+ loadData(true);
+ });
+
+
+ }
+
+ @Override
+ public void initiate() {
+ initRecyclerView();
+ loadData(true);
+ }
+
+
+ /**
+ * 刷新数据
+ */
+ private void loadData(boolean isRefresh) {
+ getMvpPresenter().loadData(isRefresh);
+ }
+
+ @Override
+ public View.OnClickListener getLoadMoreListener() {
+ return super.getLoadMoreListener();
+ }
+
+ private void initRecyclerView() {
+ recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
+ recyclerView.setItemAnimator(null);
+ mNewbieListAdapter = new RoomNewbieListAdapter();
+ mNewbieListAdapter.setOnLoadMoreListener(this, recyclerView);
+ LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
+ recyclerView.setLayoutManager(linearLayoutManager);
+ recyclerView.setAdapter(mNewbieListAdapter);
+ mNewbieListAdapter.setRylListener(new RoomNewbieListAdapter.OnItemClickListener() {
+ @Override
+ public void onAttentionBtnClick(RoomNewbieInfo fansInfo) {
+// if (fansInfo.isHello()){
+ RoomNewbieMessageActivity.start(mContext,fansInfo.getUid(),isInRoom);
+// }else {
+// SingleToastUtil.showToastShort("该用户被打招呼次数太多了,换一个吧~");
+// }
+ }
+ });
+ }
+
+
+ @Override
+ public void getRoomNewbieSuccess(List list) {
+ hideStatus();
+ if (mNewbieListAdapter != null) {
+ int page = getMvpPresenter().getPage();
+ if (page <= 1) {
+ swipeRefresh.setRefreshing(false);
+
+ if (list == null || list.size() == 0) {
+ showNoData(getString(R.string.empty_newbie_list));
+ } else {
+ mNewbieListAdapter.setNewData(list);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void getRoomNewbieFails(String error) {
+ hideStatus();
+
+ int page = getMvpPresenter().getPage();
+ if (page <= 1) {
+ showNoData(getString(R.string.empty_newbie_list));
+ }
+ }
+
+ @Override
+ public void getRoomNewbieLoadMoreSuccess(List list) {
+ if (ListUtils.isListEmpty(list)){
+ mNewbieListAdapter.loadMoreEnd();
+ return;
+ }
+ mNewbieListAdapter.addData(list);
+ mNewbieListAdapter.loadMoreComplete();
+ }
+
+ @Override
+ public void getRoomNewbieLoadMoreFails(String error) {
+ hideStatus();
+ int page = getMvpPresenter().getPage();
+ if (page <= 1) {
+ showNoData(getString(R.string.empty_newbie_list));
+ }
+ }
+
+ @Override
+ public void onReloadData() {
+ super.onReloadData();
+ loadData(true);
+ }
+
+ @Override
+ public void onLoadMoreRequested() {
+ loadData(false);
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ EventBus.getDefault().unregister(this);
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onSendHelloSuccess(SendHelloSuccessEvent event) {
+ loadData(true);
+ }
+}