From 87d7e7fd748fa0c66a107a4eeb36f520bf4e052b Mon Sep 17 00:00:00 2001 From: oujunhui <313127320@qq.com> Date: Tue, 15 Sep 2020 00:10:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B8=E6=84=BF=E6=8E=92=E8=A1=8C=E6=A6=9CUI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 4 +- .../res/layout/activity_room_box_ranking.xml | 66 +++++++ .../activity/BoxRankingActivity.java | 126 ++++++++++++ .../activity/TreasureBoxActivity.java | 3 +- .../fragment/BoxRankingFragment.java | 186 ++++++++++++++++++ 5 files changed, 383 insertions(+), 2 deletions(-) create mode 100644 app/src/module_room_chat/res/layout/activity_room_box_ranking.xml create mode 100644 app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/BoxRankingActivity.java create mode 100644 app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/fragment/BoxRankingFragment.java 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); + } +}