[Modify]屏蔽举报功能修改
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package com.yizhuan.erban;
|
||||
|
||||
import static com.yizhuan.xchat_android_core.channel_page.model.ChannelPageModel.KEY_FLAG_VALID_CHANNEL_PAGE;
|
||||
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
@@ -38,7 +40,6 @@ import com.orhanobut.logger.Logger;
|
||||
import com.tencent.bugly.crashreport.CrashReport;
|
||||
import com.tongdaxing.erban.upgrade.AppUpgradeHelper;
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent;
|
||||
import com.yizhuan.erban.application.IReportConstants;
|
||||
import com.yizhuan.erban.application.ReportManager;
|
||||
import com.yizhuan.erban.application.XChatApplication;
|
||||
@@ -108,7 +109,6 @@ import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_core.user.UserModel;
|
||||
import com.yizhuan.xchat_android_core.user.bean.GiftWallInfo;
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
||||
import com.yizhuan.xchat_android_core.user.event.LoadLoginUserInfoEvent;
|
||||
import com.yizhuan.xchat_android_core.user.event.LoginUserInfoUpdateEvent;
|
||||
@@ -135,11 +135,7 @@ import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
import static com.yizhuan.xchat_android_core.channel_page.model.ChannelPageModel.KEY_FLAG_VALID_CHANNEL_PAGE;
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
@@ -268,7 +264,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
EventBus.getDefault().register(this);
|
||||
otherModelInit();
|
||||
|
||||
Observable.interval(15, TimeUnit.SECONDS)
|
||||
Observable.interval(60, TimeUnit.SECONDS)
|
||||
.compose(bindToLifecycle())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(aLong -> EventBus.getDefault().post(new RefreshHomeDataEvent()));
|
||||
|
@@ -61,6 +61,7 @@ import com.yizhuan.erban.avroom.redpackage.RedPackageOpenDialog;
|
||||
import com.yizhuan.erban.avroom.view.IAvRoomView;
|
||||
import com.yizhuan.erban.avroom.widget.VerticalViewPagerAdapter;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.common.util.Utils;
|
||||
import com.yizhuan.erban.common.widget.CircleImageView;
|
||||
import com.yizhuan.erban.common.widget.CustomImageSpan;
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager;
|
||||
@@ -75,7 +76,6 @@ import com.yizhuan.erban.ui.widget.dialog.AllServiceGiftLevelOneDialog;
|
||||
import com.yizhuan.erban.ui.widget.dialog.AllServiceGiftLevelThreeDialog;
|
||||
import com.yizhuan.erban.ui.widget.dialog.AllServiceGiftLevelTwoDialog;
|
||||
import com.yizhuan.erban.ui.widget.dialog.MonsterDialog;
|
||||
import com.yizhuan.erban.common.util.Utils;
|
||||
import com.yizhuan.erban.utils.UserUtils;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.DemoCache;
|
||||
@@ -113,6 +113,7 @@ import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
|
||||
import com.yizhuan.xchat_android_core.room.bean.RoomModeType;
|
||||
import com.yizhuan.xchat_android_core.room.dragonball.DragonBallModel;
|
||||
import com.yizhuan.xchat_android_core.room.event.FinishAvRoomEvent;
|
||||
import com.yizhuan.xchat_android_core.room.event.RoomExitEvent;
|
||||
import com.yizhuan.xchat_android_core.room.event.RoomTaskTipsEvent;
|
||||
import com.yizhuan.xchat_android_core.room.pk.event.PKStateEvent;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
@@ -1134,6 +1135,11 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
});
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onRoomExitEvent(RoomExitEvent event) {
|
||||
toBack();
|
||||
}
|
||||
|
||||
public Single<String> giveUpDragonBar() {
|
||||
return DragonBallModel.get()
|
||||
.clearDragonBar()
|
||||
|
@@ -14,25 +14,18 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.UIHelper
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity
|
||||
import com.yizhuan.erban.avroom.adapter.ExitRoomAdapter
|
||||
import com.yizhuan.erban.avroom.presenter.HomePartyPresenter
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager.LambdaOkDialogListener
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager.OkCancelDialogListener
|
||||
import com.yizhuan.erban.ui.utils.RVDelegate
|
||||
import com.yizhuan.erban.ui.widget.ButtonItem
|
||||
import com.yizhuan.xchat_android_constants.XChatConstants
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo
|
||||
import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent
|
||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager
|
||||
import com.yizhuan.xchat_android_core.room.model.AvRoomModel
|
||||
import com.yizhuan.xchat_android_core.user.UserModel
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil
|
||||
import io.reactivex.disposables.Disposable
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
|
||||
|
||||
@ActLayoutRes(R.layout.dialog_exit_room)
|
||||
@@ -76,49 +69,6 @@ class ExitRoomPopupWindow(val avRoomActivity: AVRoomActivity) : PopupWindow() {
|
||||
|
||||
animationStyle = R.style.style_anim_right_in_out
|
||||
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||
tvReport.setOnClickListener {
|
||||
val roomInfo = AvRoomDataManager.get().mCurrentRoomInfo ?: return@setOnClickListener
|
||||
|
||||
val list: MutableList<ButtonItem> = ArrayList()
|
||||
val item1 = ButtonItem(
|
||||
ResUtil.getString(R.string.me_shield_room)
|
||||
) {
|
||||
UserModel.get().addReport(roomInfo.uid, 1)
|
||||
.subscribe(object : BeanObserver<String?>() {
|
||||
override fun onErrorMsg(error: String) {
|
||||
dismiss()
|
||||
avRoomActivity.toast(error)
|
||||
}
|
||||
|
||||
override fun onSuccess(s: String) {
|
||||
avRoomActivity.dialogManager.dismissDialog()
|
||||
avRoomActivity.toast(ResUtil.getString(R.string.me_shield_success))
|
||||
EventBus.getDefault().post(RefreshHomeDataEvent())
|
||||
handleExitRoom()
|
||||
dismiss()
|
||||
}
|
||||
})
|
||||
}
|
||||
list.add(item1)
|
||||
|
||||
val item2 = ButtonItem(
|
||||
ResUtil.getString(R.string.layout_dialog_exit_room_01)
|
||||
) {
|
||||
UIHelper.showReportPage(
|
||||
avRoomActivity,
|
||||
roomInfo.uid,
|
||||
XChatConstants.REPORT_TYPE_ROOM
|
||||
)
|
||||
avRoomActivity.dialogManager.dismissDialog()
|
||||
dismiss()
|
||||
}
|
||||
list.add(item2)
|
||||
|
||||
avRoomActivity.dialogManager.showCommonPopupDialog(
|
||||
list,
|
||||
ResUtil.getString(R.string.cancel)
|
||||
)
|
||||
}
|
||||
|
||||
tvExitRoom.setOnClickListener {
|
||||
handleExitRoom()
|
||||
|
@@ -16,19 +16,23 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.coorchice.library.utils.LogUtils;
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.tongdaxing.erban.sadmin.RoomSAdminManagerActivity;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.UIHelper;
|
||||
import com.yizhuan.erban.avroom.activity.CreatePKActivity;
|
||||
import com.yizhuan.erban.avroom.activity.RoomSettingActivity;
|
||||
import com.yizhuan.erban.avroom.anotherroompk.RoomPKCreateActivity;
|
||||
import com.yizhuan.erban.avroom.giftvalue.GiftValueDialogUiHelper;
|
||||
import com.yizhuan.erban.avroom.singleroompk.SingleRoomPKCreateActivity;
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager;
|
||||
import com.yizhuan.erban.common.util.Utils;
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager;
|
||||
import com.yizhuan.erban.ui.widget.ButtonItem;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.layoutmanager.FullyGridLayoutManager;
|
||||
import com.yizhuan.erban.vip.VipBroadcastDialog;
|
||||
import com.yizhuan.tutu.room_chat.activity.RoomInviteFansActivity;
|
||||
import com.yizhuan.xchat_android_constants.XChatConstants;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean;
|
||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
||||
@@ -36,6 +40,8 @@ import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
|
||||
import com.yizhuan.xchat_android_core.redpackage.RedPackageModel;
|
||||
import com.yizhuan.xchat_android_core.room.anotherroompk.SingleRoomPKModel;
|
||||
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
|
||||
import com.yizhuan.xchat_android_core.room.event.RoomExitEvent;
|
||||
import com.yizhuan.xchat_android_core.room.event.RoomShieldEvent;
|
||||
import com.yizhuan.xchat_android_core.room.giftvalue.GiftValueModel;
|
||||
import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
|
||||
import com.yizhuan.xchat_android_core.room.model.HomePartyModel;
|
||||
@@ -44,7 +50,9 @@ import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_core.super_admin.model.SuperAdminModel;
|
||||
import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil;
|
||||
import com.yizhuan.xchat_android_core.user.UserModel;
|
||||
import com.yizhuan.xchat_android_core.utils.CurrentTimeUtils;
|
||||
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.utils.ResUtil;
|
||||
@@ -52,6 +60,7 @@ import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
@@ -123,6 +132,7 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
addRoomLimit(optAdapter);
|
||||
addGiftValueAction(optAdapter);
|
||||
addSuperAdminAction(optAdapter);
|
||||
addShieldReportAction(optAdapter);
|
||||
rvOPtList.setAdapter(optAdapter);
|
||||
}
|
||||
|
||||
@@ -625,6 +635,58 @@ public class RoomOperationDialog extends BottomSheetDialog {
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* 举报屏蔽
|
||||
*/
|
||||
private void addShieldReportAction(OptAdapter optAdapter) {
|
||||
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (roomInfo == null) {
|
||||
return;
|
||||
}
|
||||
optAdapter.addData(new OptAction(R.drawable.icon_room_shield_report,
|
||||
ResUtil.getString(R.string.me_shield_report),
|
||||
() ->{
|
||||
DialogManager dialogManager = new DialogManager(context);
|
||||
List<ButtonItem> buttonItems = new ArrayList<>();
|
||||
ButtonItem buttonItem1 = new ButtonItem(ResUtil.getString(R.string.me_shield_room), () -> {
|
||||
UserModel.get().addReport(roomInfo.getUid(), 1)
|
||||
.subscribe(new BeanObserver<String>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
dialogManager.dismissDialog();
|
||||
dismiss();
|
||||
ToastUtils.show(error);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
ToastUtils.show(ResUtil.getString(R.string.me_shield_success));
|
||||
dialogManager.dismissDialog();
|
||||
EventBus.getDefault().post(new RoomShieldEvent());
|
||||
EventBus.getDefault().post(new RoomExitEvent());
|
||||
dismiss();
|
||||
}
|
||||
});
|
||||
});
|
||||
buttonItems.add(buttonItem1);
|
||||
ButtonItem buttonItem2 = new ButtonItem(ResUtil.getString(R.string.layout_dialog_exit_room_01), () -> {
|
||||
UIHelper.showReportPage(
|
||||
context,
|
||||
roomInfo.getUid(),
|
||||
XChatConstants.REPORT_TYPE_ROOM
|
||||
);
|
||||
dialogManager.dismissDialog();
|
||||
dismiss();
|
||||
});
|
||||
buttonItems.add(buttonItem2);
|
||||
dialogManager.showCommonPopupDialog(
|
||||
buttonItems,
|
||||
ResUtil.getString(R.string.cancel)
|
||||
);
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
|
@@ -36,6 +36,7 @@ import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.avroom.BottomViewListenerWrapper
|
||||
import com.yizhuan.erban.avroom.SoftKeyBoardListener
|
||||
import com.yizhuan.erban.avroom.SoftKeyBoardListener.OnSoftKeyBoardChangeListener
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity
|
||||
import com.yizhuan.erban.avroom.activity.RoomInviteActivity
|
||||
import com.yizhuan.erban.avroom.activity.RoomTitleEditActivity
|
||||
import com.yizhuan.erban.avroom.adapter.OnMicroItemClickListener
|
||||
|
@@ -25,18 +25,6 @@ class RoomCommonAdapter : BaseQuickAdapter<HomeRoomInfo, BaseViewHolder>(R.layou
|
||||
helper.setGone(R.id.iv_room_tag, !TextUtils.isEmptyText(item.tagPict))
|
||||
ImageLoadUtilsV2.loadImage(helper.getView(R.id.iv_room_tag), item.tagPict)
|
||||
|
||||
val avatars: Array<ImageView> = arrayOf(
|
||||
helper.getView(R.id.iv_avatar_0),
|
||||
helper.getView(R.id.iv_avatar_1),
|
||||
helper.getView(R.id.iv_avatar_2),
|
||||
helper.getView(R.id.iv_avatar_3),
|
||||
helper.getView(R.id.iv_avatar_4)
|
||||
)
|
||||
for (i in avatars.indices) {
|
||||
val avatarUrl = item.micUsers?.getOrNull(i)?.avatar
|
||||
avatars[i].isGone = avatarUrl.isNullOrBlank()
|
||||
avatars[i].load(avatarUrl)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -1,107 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
||||
import com.yizhuan.erban.base.BaseFragment;
|
||||
import com.yizhuan.erban.common.EmptyViewHelper;
|
||||
import com.yizhuan.erban.home.adapter.HomePlayAdapter;
|
||||
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 com.yizhuan.xchat_android_core.home.model.GameHomeModel;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_core.user.event.LoadLoginUserInfoEvent;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
/**
|
||||
* create by lvzebiao @2020/1/7
|
||||
*/
|
||||
public class HomePlayFragment extends BaseFragment {
|
||||
|
||||
private RecyclerView recyclerView;
|
||||
|
||||
private HomePlayAdapter playAdapter;
|
||||
private RVDelegate<HomeRoomInfo> rvDelegate;
|
||||
|
||||
public static HomePlayFragment newInstance() {
|
||||
HomePlayFragment fragment = new HomePlayFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
fragment.setArguments(bundle);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_home_play;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
recyclerView = mView.findViewById(R.id.recycler_view);
|
||||
EventBus.getDefault().register(this);
|
||||
playAdapter = new HomePlayAdapter();
|
||||
rvDelegate = new RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(playAdapter)
|
||||
.setLayoutManager(new LinearLayoutManager(mContext))
|
||||
.setRecyclerView(recyclerView)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyView(getContext(), ResUtil.getString(R.string.home_fragment_homeplayfragment_01)))
|
||||
.build();
|
||||
playAdapter.setOnItemClickListener((adapter, view, position) -> {
|
||||
HomeRoomInfo homePlayInfo = playAdapter.getItem(position);
|
||||
if (homePlayInfo != null) {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_KH_ROOM_SUCCESS, ResUtil.getString(R.string.home_fragment_homeplayfragment_02));
|
||||
AVRoomActivity.startForFromType(mContext, homePlayInfo.getUid(), AVRoomActivity.FROM_TYPE_RECOMMEND);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
loadData(true);
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private void loadData(boolean refresh) {
|
||||
GameHomeModel.get().getHomePlayV2()
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((homePlayInfoList, throwable) -> {
|
||||
if (throwable != null) {
|
||||
rvDelegate.loadErr(refresh);
|
||||
} else {
|
||||
rvDelegate.loadData(homePlayInfoList, refresh);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onLoadLoginUserInfoEvent(LoadLoginUserInfoEvent event) {
|
||||
if (isResumed()) loadData(true);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onRefreshHomeDataEvent(RefreshHomeDataEvent event) {
|
||||
if (isResumed()) loadData(true);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
EventBus.getDefault().unregister(this);
|
||||
super.onDestroyView();
|
||||
}
|
||||
|
||||
}
|
@@ -17,11 +17,9 @@ import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
|
||||
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.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_core.room.event.RoomShieldEvent;
|
||||
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.zhpan.bannerview.BannerViewPager;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
@@ -46,6 +44,9 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
|
||||
private BannerViewPager<HomeTabMapInfo> mBanner;
|
||||
|
||||
//是否需要刷新接口进行屏蔽房间操作
|
||||
private boolean isShield = false;
|
||||
|
||||
public static HomeTabHomeFragment newInstance() {
|
||||
HomeTabHomeFragment fragment = new HomeTabHomeFragment();
|
||||
return fragment;
|
||||
@@ -198,6 +199,15 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if(isShield){
|
||||
getData();
|
||||
isShield = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
@@ -209,4 +219,9 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
if (isResumed()) getData();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onRoomShieldEvent(RoomShieldEvent event){
|
||||
isShield = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,188 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment
|
||||
|
||||
import android.graphics.Color
|
||||
import android.os.Bundle
|
||||
import android.view.Gravity
|
||||
import android.widget.TextView
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.viewpager.widget.ViewPager
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import com.scwang.smartrefresh.layout.internal.ProgressDrawable
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.avroom.adapter.RoomVPAdapter
|
||||
import com.yizhuan.erban.base.BaseViewBindingFragment
|
||||
import com.yizhuan.erban.databinding.FragmentLiveBinding
|
||||
import com.yizhuan.erban.home.HomeViewModel
|
||||
import com.yizhuan.erban.home.adapter.HomeLiveTopAdapter
|
||||
import com.yizhuan.erban.home.adapter.MainMagicIndicatorAdapter
|
||||
import com.yizhuan.erban.home.adapter.PartyMagicIndicatorAdapter
|
||||
import com.yizhuan.erban.ui.utils.RVDelegate
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
|
||||
import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent
|
||||
import com.yizhuan.xchat_android_core.room.bean.HomeLiveTopInfo
|
||||
import com.yizhuan.xchat_android_core.room.bean.SingleRoomSortInfo
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol
|
||||
import com.yizhuan.xchat_android_core.utils.CurrentTimeUtils
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
/**
|
||||
* Peko首页
|
||||
*/
|
||||
class LiveFragment : BaseViewBindingFragment<FragmentLiveBinding>(),
|
||||
MainMagicIndicatorAdapter.OnItemSelectListener,
|
||||
PartyMagicIndicatorAdapter.OnItemSelectListener {
|
||||
|
||||
private val mFragments: ArrayList<Fragment> = ArrayList()
|
||||
private val mTabInfoList: ArrayList<String> = ArrayList()
|
||||
private var currentIndex = 0
|
||||
private var lastLoadDataTime = 0L
|
||||
|
||||
private lateinit var mAdapter: HomeLiveTopAdapter
|
||||
private lateinit var rvDelegate: RVDelegate<HomeLiveTopInfo.SingleRoom>
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
|
||||
companion object {
|
||||
fun newInstance(): LiveFragment {
|
||||
val args = Bundle()
|
||||
val fragment = LiveFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
override fun init() {
|
||||
mAdapter = HomeLiveTopAdapter()
|
||||
rvDelegate = RVDelegate.Builder<HomeLiveTopInfo.SingleRoom>()
|
||||
.setAdapter(mAdapter)
|
||||
.setLayoutManager(LinearLayoutManager(mContext, RecyclerView.HORIZONTAL, false))
|
||||
.setRecyclerView(binding.recyclerView)
|
||||
.build()
|
||||
initRefreshView()
|
||||
homeViewModel.singleRoomSortInfoLiveData.observe(
|
||||
viewLifecycleOwner
|
||||
) {
|
||||
if (it.isSuccess) {
|
||||
it.data?.let { date -> onGetSingleRoomSortInfoSuccess(date) }
|
||||
}
|
||||
}
|
||||
|
||||
homeViewModel.homeLiveTopInfoLiveData.observe(viewLifecycleOwner) {
|
||||
it?.let {
|
||||
mAdapter.setOnceLookStatus(it.onceLookStatus)
|
||||
rvDelegate.loadData(it.singleRoomList, true)
|
||||
binding.tvTitle.text = if (it.onceLookStatus) ResUtil.getString(R.string.home_fragment_livefragment_01) else ResUtil.getString(R.string.home_fragment_livefragment_02)
|
||||
}
|
||||
}
|
||||
|
||||
binding.viewPager.addOnPageChangeListener(object : ViewPager.SimpleOnPageChangeListener() {
|
||||
override fun onPageSelected(position: Int) {
|
||||
super.onPageSelected(position)
|
||||
StatisticManager.Instance().onEvent(
|
||||
StatisticsProtocol.EVENT_GEBO_TAB_CLICK,
|
||||
ResUtil.getString(R.string.home_fragment_livefragment_03),
|
||||
mapOf("tab_name" to mTabInfoList.getOrElse(position) { ResUtil.getString(R.string.home_fragment_livefragment_04) })
|
||||
)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
loadData()
|
||||
StatisticManager.Instance().onEvent(
|
||||
StatisticsProtocol.EVENT_RECENT_CARD_SHOW, ResUtil.getString(R.string.home_fragment_livefragment_05)
|
||||
)
|
||||
}
|
||||
|
||||
private fun onGetSingleRoomSortInfoSuccess(info: List<SingleRoomSortInfo>) {
|
||||
var changed = false
|
||||
val oldTabInfoList: List<CharSequence> = ArrayList<CharSequence>(mTabInfoList)
|
||||
for (tagInfo in info) {
|
||||
if (!oldTabInfoList.contains(tagInfo.sortName)) {
|
||||
changed = true
|
||||
break
|
||||
}
|
||||
}
|
||||
//只有HomeTagInfo发生改变才刷新数据
|
||||
if (changed) {
|
||||
mTabInfoList.clear()
|
||||
mFragments.clear()
|
||||
for (tagInfo in info) {
|
||||
mTabInfoList.add(tagInfo.sortName)
|
||||
val fragment = RoomSingleFragment.newInstance(tagInfo.id)
|
||||
mFragments.add(fragment)
|
||||
}
|
||||
val commonNavigator = CommonNavigator(context)
|
||||
commonNavigator.setTitleWrapContent(false)
|
||||
commonNavigator.titleMargin = ScreenUtil.dip2px(2.0F)
|
||||
commonNavigator.setTitleGravity(Gravity.CENTER_VERTICAL)
|
||||
val magicIndicatorAdapter = PartyMagicIndicatorAdapter(mTabInfoList)
|
||||
magicIndicatorAdapter.textSize = 14
|
||||
magicIndicatorAdapter.setOnItemSelectListener(this)
|
||||
commonNavigator.adapter = magicIndicatorAdapter
|
||||
binding.magicIndicator.navigator = commonNavigator
|
||||
binding.viewPager.offscreenPageLimit = 2
|
||||
binding.viewPager.adapter = RoomVPAdapter(
|
||||
childFragmentManager,
|
||||
mFragments
|
||||
)
|
||||
ViewPagerHelper.bind(binding.magicIndicator, binding.viewPager)
|
||||
onItemSelect(currentIndex, null)
|
||||
}
|
||||
}
|
||||
|
||||
private fun initRefreshView() {
|
||||
binding.refreshLayout.setOnRefreshListener {
|
||||
binding.refreshLayout.finishRefresh()
|
||||
EventBus.getDefault().post(RefreshHomeDataEvent())
|
||||
}
|
||||
binding.refreshLayout.isEnableLoadmore = false
|
||||
binding.refreshLayout.isEnableOverScrollBounce = false
|
||||
val themeColor = requireContext().resources.getColor(R.color.color_666666)
|
||||
binding.refreshHeader.lastUpdateText.setTextColor(themeColor)
|
||||
binding.refreshHeader.titleText.setTextColor(themeColor)
|
||||
binding.refreshHeader.setBackgroundColor(Color.TRANSPARENT)
|
||||
val progressDrawable = ProgressDrawable()
|
||||
progressDrawable.setColor(themeColor)
|
||||
binding.refreshHeader.progressView.setImageDrawable(progressDrawable)
|
||||
}
|
||||
|
||||
override fun onItemSelect(position: Int, view: TextView?) {
|
||||
currentIndex = position
|
||||
binding.viewPager.currentItem = currentIndex
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) {
|
||||
loadData()
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadData() {
|
||||
if (CurrentTimeUtils.getCurrentTime() - lastLoadDataTime < 15 * 1000) return
|
||||
lastLoadDataTime = CurrentTimeUtils.getCurrentTime()
|
||||
homeViewModel.requestSingleRoomSortList()
|
||||
homeViewModel.requestHomeLiveTopInfo()
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -19,6 +19,7 @@ import com.yizhuan.erban.home.helper.BannerHelper
|
||||
import com.yizhuan.erban.home.helper.OpenRoomHelper
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo
|
||||
import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent
|
||||
import com.yizhuan.xchat_android_core.room.event.RoomShieldEvent
|
||||
import com.yizhuan.xchat_android_core.user.UserModel
|
||||
import com.yizhuan.xchat_android_core.user.event.LoginUserInfoUpdateEvent
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
@@ -34,14 +35,8 @@ class RecommendFragment : BaseViewBindingFragment<FragmentRecommendBinding>() {
|
||||
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
|
||||
companion object {
|
||||
fun newInstance(): RecommendFragment {
|
||||
val args = Bundle()
|
||||
val fragment = RecommendFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
//是否需要刷新接口进行屏蔽房间操作
|
||||
private var isShield = false
|
||||
|
||||
override fun init() {
|
||||
initRefreshView()
|
||||
@@ -154,6 +149,14 @@ class RecommendFragment : BaseViewBindingFragment<FragmentRecommendBinding>() {
|
||||
loadData()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if(isShield){
|
||||
loadData()
|
||||
isShield = false
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadData() {
|
||||
homeViewModel.getBannerInfo()
|
||||
homeViewModel.getHomePlayV2()
|
||||
@@ -187,4 +190,9 @@ class RecommendFragment : BaseViewBindingFragment<FragmentRecommendBinding>() {
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRoomShieldEvent(event: RoomShieldEvent?){
|
||||
isShield = true
|
||||
}
|
||||
|
||||
}
|
@@ -14,6 +14,8 @@ 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 com.yizhuan.xchat_android_core.room.event.RoomShieldEvent
|
||||
import com.yizhuan.xchat_android_library.common.util.Logger
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
@@ -40,6 +42,9 @@ class RoomCommonFragment : BaseViewBindingFragment<FragmentRoomCommonBinding>()
|
||||
|
||||
private var roomCommonViewModel: RoomCommonViewModel? = null
|
||||
|
||||
//是否需要刷新接口进行屏蔽房间操作
|
||||
private var isShield = false
|
||||
|
||||
override fun init() {
|
||||
val roomCommonViewModel: RoomCommonViewModel by viewModels()
|
||||
this.roomCommonViewModel = roomCommonViewModel
|
||||
@@ -74,6 +79,14 @@ class RoomCommonFragment : BaseViewBindingFragment<FragmentRoomCommonBinding>()
|
||||
loadData(true)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if(isShield){
|
||||
loadData(true)
|
||||
isShield = false
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
fun loadData(isRefresh: Boolean) {
|
||||
binding.refreshLayout.isRefreshing = isRefresh
|
||||
@@ -93,6 +106,12 @@ class RoomCommonFragment : BaseViewBindingFragment<FragmentRoomCommonBinding>()
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
// if (isResumed) loadData(true)
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRoomShieldEvent(event: RoomShieldEvent?){
|
||||
isShield = true
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -13,6 +13,7 @@ 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 com.yizhuan.xchat_android_core.room.event.RoomShieldEvent
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
@@ -35,6 +36,9 @@ class RoomGameFragment : BaseViewBindingFragment<FragmentRoomGameBinding>() {
|
||||
private val pageSize = 20
|
||||
private var homeViewModel: HomeViewModel? = null
|
||||
|
||||
//是否需要刷新接口进行屏蔽房间操作
|
||||
private var isShield = false
|
||||
|
||||
override fun init() {
|
||||
val homeViewModel: HomeViewModel by viewModels()
|
||||
this.homeViewModel = homeViewModel
|
||||
@@ -79,6 +83,14 @@ class RoomGameFragment : BaseViewBindingFragment<FragmentRoomGameBinding>() {
|
||||
loadData(true)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if(isShield){
|
||||
loadData(true)
|
||||
isShield = false
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadData(isRefresh: Boolean) {
|
||||
|
||||
binding.refreshLayout.isRefreshing = isRefresh
|
||||
@@ -103,6 +115,12 @@ class RoomGameFragment : BaseViewBindingFragment<FragmentRoomGameBinding>() {
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
// if (isResumed) loadData(true)
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRoomShieldEvent(event: RoomShieldEvent?){
|
||||
isShield = true
|
||||
}
|
||||
|
||||
}
|
@@ -1,77 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.base.BaseViewBindingFragment
|
||||
import com.yizhuan.erban.common.EmptyViewHelper
|
||||
import com.yizhuan.erban.databinding.FragmentRoomHotBinding
|
||||
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 com.yizhuan.xchat_android_library.utils.ResUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
|
||||
class RoomHotFragment : BaseViewBindingFragment<FragmentRoomHotBinding>() {
|
||||
|
||||
companion object {
|
||||
fun newInstance(): RoomHotFragment {
|
||||
val args = Bundle()
|
||||
val fragment = RoomHotFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyView(context, ResUtil.getString(R.string.home_fragment_roomhotfragment_01)))
|
||||
.setLayoutManager(LinearLayoutManager(mContext))
|
||||
.setPageSize(pageSize)
|
||||
.build()
|
||||
|
||||
homeViewModel.hotRoomLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
loadData(true)
|
||||
}
|
||||
|
||||
private fun loadData(isRefresh: Boolean) {
|
||||
homeViewModel.getHotRoom(page, pageSize)
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
}
|
@@ -18,6 +18,7 @@ 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 com.yizhuan.xchat_android_core.room.event.RoomShieldEvent
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
@@ -44,6 +45,9 @@ class RoomLikeFragment : BaseViewBindingFragment<FragmentRoomLikeBinding>() {
|
||||
private val pageSize = 20
|
||||
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||
|
||||
//是否需要刷新接口进行屏蔽房间操作
|
||||
private var isShield = false
|
||||
|
||||
override fun init() {
|
||||
|
||||
binding.appBarLayout.addOnOffsetChangedListener(
|
||||
@@ -109,6 +113,14 @@ class RoomLikeFragment : BaseViewBindingFragment<FragmentRoomLikeBinding>() {
|
||||
loadData(true)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if(isShield){
|
||||
loadData(true)
|
||||
isShield = false
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadData(isRefresh: Boolean) {
|
||||
if (isRefresh) {
|
||||
pageNum = 1
|
||||
@@ -131,7 +143,12 @@ class RoomLikeFragment : BaseViewBindingFragment<FragmentRoomLikeBinding>() {
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
// if (isResumed) loadData(true)
|
||||
if (isResumed) loadData(true)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRoomShieldEvent(event: RoomShieldEvent?){
|
||||
isShield = true
|
||||
}
|
||||
|
||||
}
|
@@ -1,88 +0,0 @@
|
||||
package com.yizhuan.erban.home.fragment
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.base.BaseViewBindingFragment
|
||||
import com.yizhuan.erban.common.EmptyViewHelper
|
||||
import com.yizhuan.erban.databinding.FragmentRoomSingleBinding
|
||||
import com.yizhuan.erban.home.RoomSingleViewModel
|
||||
import com.yizhuan.erban.home.adapter.MoreSingleAnchorAdapter
|
||||
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 com.yizhuan.xchat_android_core.utils.CurrentTimeUtils
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
|
||||
class RoomSingleFragment : BaseViewBindingFragment<FragmentRoomSingleBinding>() {
|
||||
|
||||
companion object {
|
||||
fun newInstance(id: Long?): RoomSingleFragment {
|
||||
val args = Bundle()
|
||||
if (id != null) {
|
||||
args.putLong("id", id)
|
||||
}
|
||||
val fragment = RoomSingleFragment()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private lateinit var adapter: MoreSingleAnchorAdapter
|
||||
private lateinit var rvDelegate: RVDelegate<HomeRoomInfo>
|
||||
|
||||
private val pageSize = Int.MAX_VALUE
|
||||
private val roomSingleViewModel: RoomSingleViewModel by viewModels()
|
||||
|
||||
private var lastLoadDataTime = 0L
|
||||
|
||||
private val id: Long? by lazy { requireArguments().getLong("id") }
|
||||
|
||||
override fun init() {
|
||||
adapter = MoreSingleAnchorAdapter()
|
||||
rvDelegate = RVDelegate.Builder<HomeRoomInfo>()
|
||||
.setAdapter(adapter)
|
||||
.setRecyclerView(binding.recyclerView)
|
||||
.setRefreshLayout(binding.refreshLayout)
|
||||
.setEmptyView(EmptyViewHelper.createEmptyView(context, ResUtil.getString(R.string.home_fragment_roomsinglefragment_01)))
|
||||
.setLayoutManager(GridLayoutManager(mContext, 2))
|
||||
.setPageSize(pageSize)
|
||||
.build()
|
||||
binding.refreshLayout.setOnRefreshListener { loadData(true) }
|
||||
roomSingleViewModel.singleAnchorMoreLiveData.observe(this) {
|
||||
rvDelegate.loadData(it)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
loadData(false)
|
||||
}
|
||||
|
||||
private fun loadData(isForce: Boolean) {
|
||||
if (!isForce && CurrentTimeUtils.getCurrentTime() - lastLoadDataTime < 15 * 1000) return
|
||||
lastLoadDataTime = CurrentTimeUtils.getCurrentTime()
|
||||
binding.refreshLayout.isRefreshing = true
|
||||
roomSingleViewModel.getMoreSingleAnchorList(id)
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onRefreshHomeDataEvent(event: RefreshHomeDataEvent?) {
|
||||
if (isResumed) loadData(false)
|
||||
}
|
||||
}
|
BIN
app/src/main/res/drawable-xhdpi/icon_room_shield_report.webp
Normal file
BIN
app/src/main/res/drawable-xhdpi/icon_room_shield_report.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
@@ -32,18 +32,6 @@
|
||||
android:layout_marginTop="52dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_report"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:drawableTop="@drawable/ic_room_report"
|
||||
android:drawablePadding="12dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/me_shield_report"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_mini_room"
|
||||
android:layout_width="0dp"
|
||||
|
@@ -1,124 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.scwang.smartrefresh.layout.SmartRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/refresh_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.scwang.smartrefresh.layout.header.ClassicsHeader
|
||||
android:id="@+id/refresh_header"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
android:id="@+id/coordinator_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/app_bar_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/transparent"
|
||||
app:elevation="0dp"
|
||||
app:layout_behavior="com.yizhuan.erban.ui.widget.AppBarLayoutBehavior">
|
||||
|
||||
<com.google.android.material.appbar.CollapsingToolbarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:contentScrim="@color/transparent"
|
||||
app:layout_scrollFlags="scroll|enterAlwaysCollapsed">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="15dp"
|
||||
android:paddingBottom="15dp">
|
||||
|
||||
<View
|
||||
android:id="@+id/view_bg"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:background="@drawable/home_live_bg_top_history"
|
||||
app:layout_constraintDimensionRatio="690:254"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="14dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:drawableStart="@drawable/home_live_ic_top_like"
|
||||
android:drawablePadding="4dp"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:text="@string/layout_fragment_live_01"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="14dp"
|
||||
app:layout_constraintStart_toStartOf="@id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@id/view_bg" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/line_rv_top"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintGuide_percent="0.284" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/line_rv_bottom"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintGuide_percent="0.945" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:clipToPadding="false"
|
||||
android:overScrollMode="never"
|
||||
android:paddingStart="7dp"
|
||||
android:paddingEnd="7dp"
|
||||
android:scrollbars="none"
|
||||
app:layout_constraintBottom_toBottomOf="@id/line_rv_bottom"
|
||||
app:layout_constraintEnd_toEndOf="@id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@id/line_rv_top" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.appbar.CollapsingToolbarLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/fl_indicator"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="5dp">
|
||||
|
||||
<com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator
|
||||
android:id="@+id/magic_indicator"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginStart="7dp" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<androidx.viewpager.widget.ViewPager
|
||||
android:id="@+id/view_pager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
||||
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
|
||||
|
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false" />
|
||||
|
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/refresh_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:paddingStart="9dp"
|
||||
android:paddingEnd="9dp" />
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
|
@@ -101,60 +101,4 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="266" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/fl_avatar"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="18dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent">
|
||||
|
||||
<com.yizhuan.erban.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_0"
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<com.yizhuan.erban.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_1"
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:layout_marginStart="14dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<com.yizhuan.erban.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_2"
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:layout_marginStart="28dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<com.yizhuan.erban.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_3"
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:layout_marginStart="44dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
<com.yizhuan.erban.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar_4"
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:layout_marginStart="58dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1px" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:paddingTop="2dp" />
|
||||
|
@@ -0,0 +1,8 @@
|
||||
package com.yizhuan.xchat_android_core.room.event;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RoomExitEvent {
|
||||
|
||||
}
|
@@ -0,0 +1,7 @@
|
||||
package com.yizhuan.xchat_android_core.room.event;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RoomShieldEvent {
|
||||
}
|
Reference in New Issue
Block a user