From 6e69ca9b197536b86da3d8554f4fd2b08586fdae Mon Sep 17 00:00:00 2001 From: huangjian Date: Tue, 16 Nov 2021 18:03:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E6=88=BF=E9=80=BB=E8=BE=91=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/activity/HomeMoreRoomActivity.java | 173 +---------- .../erban/home/fragment/HomeFragment.java | 209 ++------------ .../erban/home/fragment/MainFragment.java | 193 +------------ .../erban/home/fragment/MeFragment.java | 270 +----------------- .../erban/home/helper/OpenRoomHelper.java | 202 +++++++++++++ .../main/res/layout/item_home_concerns.xml | 2 +- 6 files changed, 246 insertions(+), 803 deletions(-) create mode 100644 app/src/main/java/com/yizhuan/erban/home/helper/OpenRoomHelper.java diff --git a/app/src/main/java/com/yizhuan/erban/home/activity/HomeMoreRoomActivity.java b/app/src/main/java/com/yizhuan/erban/home/activity/HomeMoreRoomActivity.java index 177e84f69..6c71282ab 100644 --- a/app/src/main/java/com/yizhuan/erban/home/activity/HomeMoreRoomActivity.java +++ b/app/src/main/java/com/yizhuan/erban/home/activity/HomeMoreRoomActivity.java @@ -3,15 +3,10 @@ package com.yizhuan.erban.home.activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.text.Spannable; -import android.text.SpannableStringBuilder; -import android.text.style.ForegroundColorSpan; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -23,36 +18,27 @@ import com.yizhuan.erban.avroom.activity.AVRoomActivity; import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter; import com.yizhuan.erban.avroom.ktv.KtvMusicManager; import com.yizhuan.erban.base.BaseMvpActivity; -import com.yizhuan.erban.common.widget.dialog.DialogManager; import com.yizhuan.erban.home.adapter.HomeConcernsAdapter; import com.yizhuan.erban.home.adapter.MainMagicIndicatorAdapter; import com.yizhuan.erban.home.fragment.HomeTabMapFragment; +import com.yizhuan.erban.home.helper.OpenRoomHelper; import com.yizhuan.erban.home.presenter.MainFragmentPresenter; import com.yizhuan.erban.home.view.IMainFragmentView; import com.yizhuan.erban.service.DaemonService; -import com.yizhuan.erban.ui.webview.CommonWebViewActivity; import com.yizhuan.erban.ui.widget.OnPageSelectedListener; import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator; import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper; import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator; import com.yizhuan.erban.ui.widget.recyclerview.decoration.VerticalDecoration; -import com.yizhuan.xchat_android_core.UriProvider; -import com.yizhuan.xchat_android_core.auth.AuthModel; -import com.yizhuan.xchat_android_core.certification.CertificationModel; import com.yizhuan.xchat_android_core.home.bean.BannerInfo; import com.yizhuan.xchat_android_core.home.bean.HomeConcernsInfo; import com.yizhuan.xchat_android_core.home.bean.HomeTagInfo; import com.yizhuan.xchat_android_core.home.bean.TagListInfo; import com.yizhuan.xchat_android_core.manager.AudioEngineManager; -import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; import com.yizhuan.xchat_android_core.room.bean.RoomInfo; -import com.yizhuan.xchat_android_core.room.model.AvRoomModel; 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.UserInfo; import com.yizhuan.xchat_android_library.base.factory.CreatePresenter; -import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack; import com.yizhuan.xchat_android_library.utils.ListUtils; import com.yizhuan.xchat_android_library.utils.SizeUtils; @@ -62,10 +48,6 @@ import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; -import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_FORCE; -import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_GUIDE; -import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_NONE; - @CreatePresenter(MainFragmentPresenter.class) public class HomeMoreRoomActivity extends BaseMvpActivity implements IMainFragmentView, MainMagicIndicatorAdapter.OnItemSelectListener { @@ -78,6 +60,11 @@ public class HomeMoreRoomActivity extends BaseMvpActivity mFragments; + public static void start(Context context) { + Intent intent = new Intent(context, HomeMoreRoomActivity.class); + context.startActivity(intent); + } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -88,12 +75,6 @@ public class HomeMoreRoomActivity extends BaseMvpActivity { StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HOME_INTO_DBRUK_CLICK, "点击顶部我的房间/关注进入房间"); if (position == 0) { - openRoom(); + OpenRoomHelper.openRoom(this); return; } HomeConcernsInfo homeConcernsInfo = mFollowRoomsAdapter.getItem(position); @@ -135,22 +116,7 @@ public class HomeMoreRoomActivity extends BaseMvpActivity() { - @Override - public void onSuccess(RoomInfo data) { - if (data.getType() != 0 - && data.getType() != roomType - && data.isValid()) { - String message = roomType == RoomInfo.ROOMTYPE_CP ? "创建陪伴房,将关闭当前房间并解散房间内的用户" - : "创建普通房,将关闭当前房间并解散房间内的用户"; - getDialogManager().showOkCancelDialog( - message, - "确认", - "取消", - new DialogManager.OkCancelDialogListener() { - @Override - public void onCancel() { - - } - - @Override - public void onOk() { -// openRoom(roomType); - changeRoomState(data.getWorldId(), roomType); - } - }); - } else { -// openRoom(roomType); - changeRoomState(data.getWorldId(), roomType); - } - } - - @Override - public void onFail(int code, String error) { -// openRoom(roomType); - changeRoomState(0, roomType); - } - - }); - } - - private void changeRoomState(long worldId, int roomType) { - if (worldId == 0) { - openRoom(roomType); - } else { - getMvpPresenter().roomWorldModeClose(AuthModel.get().getCurrentUid()); - } - } - - private void openRoom(int roomType) { - RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo; - if (roomInfo != null) { - if (roomInfo.getUid() == AuthModel.get().getCurrentUid() - && roomInfo.getType() == roomType) { - AVRoomActivity.start(HomeMoreRoomActivity.this, roomInfo.getUid()); - } else { - getDialogManager().showProgressDialog(HomeMoreRoomActivity.this, getString(R.string.waiting_text)); - getMvpPresenter().requestExitRoom(roomType); - } - } else { - getDialogManager().showProgressDialog(HomeMoreRoomActivity.this, getString(R.string.waiting_text)); - getMvpPresenter().requestOpenRoom(roomType); - } - } - - @NonNull - private SpannableStringBuilder getCertificationTips() { - String tips = getString(R.string.tips_need_to_certification); - SpannableStringBuilder builder = new SpannableStringBuilder(tips); - builder.setSpan(new ForegroundColorSpan(ContextCompat.getColor(HomeMoreRoomActivity.this, R.color.appColor)), - tips.length() - 4, tips.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - return builder; - } - @Override protected boolean needSteepStateBar() { return true; diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.java index 9bbe77c6f..025bc0d33 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.java +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeFragment.java @@ -8,9 +8,6 @@ import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.os.Bundle; import android.os.Handler; -import android.text.Spannable; -import android.text.SpannableStringBuilder; -import android.text.style.ForegroundColorSpan; import android.view.View; import android.widget.FrameLayout; import android.widget.ImageView; @@ -20,7 +17,6 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.coordinatorlayout.widget.CoordinatorLayout; -import androidx.core.content.ContextCompat; import androidx.databinding.DataBindingUtil; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; @@ -32,18 +28,17 @@ import com.coorchice.library.utils.LogUtils; import com.netease.nim.uikit.common.util.sys.ScreenUtil; import com.netease.nim.uikit.support.glide.GlideApp; import com.scwang.smartrefresh.layout.internal.ProgressDrawable; -import com.yizhuan.erban.MainActivity; import com.yizhuan.erban.R; import com.yizhuan.erban.avroom.activity.AVRoomActivity; import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter; import com.yizhuan.erban.base.BaseMvpFragment; -import com.yizhuan.erban.common.widget.dialog.DialogManager; import com.yizhuan.erban.databinding.FragmentGameHomeBinding; import com.yizhuan.erban.home.activity.HomeMoreRoomActivity; import com.yizhuan.erban.home.adapter.BannerAdapter; import com.yizhuan.erban.home.adapter.HomeAddFriendsAdapter; import com.yizhuan.erban.home.adapter.HomeConcernsAdapter; import com.yizhuan.erban.home.adapter.MainMagicIndicatorAdapter; +import com.yizhuan.erban.home.helper.OpenRoomHelper; import com.yizhuan.erban.home.presenter.MainFragmentPresenter; import com.yizhuan.erban.home.view.IMainFragmentView; import com.yizhuan.erban.radish.signin.SignInActivity; @@ -58,7 +53,6 @@ import com.yizhuan.erban.ui.widget.rollviewpager.Util; import com.yizhuan.erban.ui.widget.rollviewpager.hintview.ColorPointHintView; import com.yizhuan.xchat_android_core.UriProvider; import com.yizhuan.xchat_android_core.auth.AuthModel; -import com.yizhuan.xchat_android_core.certification.CertificationModel; import com.yizhuan.xchat_android_core.home.bean.BannerInfo; import com.yizhuan.xchat_android_core.home.bean.HomeConcernsInfo; import com.yizhuan.xchat_android_core.home.bean.HomePlayInfo; @@ -67,10 +61,8 @@ import com.yizhuan.xchat_android_core.home.bean.TagListInfo; 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.manager.AvRoomDataManager; import com.yizhuan.xchat_android_core.market_verify.MarketVerifyModel; import com.yizhuan.xchat_android_core.room.bean.RoomInfo; -import com.yizhuan.xchat_android_core.room.model.AvRoomModel; 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; @@ -80,7 +72,6 @@ import com.yizhuan.xchat_android_core.user.event.LoginUserInfoUpdateEvent; import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils; import com.yizhuan.xchat_android_core.utils.TextUtils; import com.yizhuan.xchat_android_library.base.factory.CreatePresenter; -import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack; import com.yizhuan.xchat_android_library.utils.ListUtils; import com.yizhuan.xchat_android_library.utils.SingleToastUtil; import com.yizhuan.xchat_android_library.utils.SizeUtils; @@ -100,10 +91,6 @@ import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; -import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_FORCE; -import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_GUIDE; -import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_NONE; - /** * 音游首页 */ @@ -111,25 +98,6 @@ import static com.yizhuan.xchat_android_core.certification.CertificationModel.CE public class HomeFragment extends BaseMvpFragment implements IMainFragmentView, View.OnClickListener, MainMagicIndicatorAdapter.OnItemSelectListener, MainMagicIndicatorAdapter.OnBottomItemSelectListener { public static final String TAG = "GameHomeFragment"; - private FragmentGameHomeBinding mBinding; - - @NonNull - private final List mFragments = new ArrayList<>(); - private List mFragmentsBottom; - private Handler uiHandler; - - private boolean needAutoScroll = true; - - private HomeAddFriendsAdapter addFriendsAdapter; - - private BannerAdapter bannerAdapter; - - @Nullable - private Disposable addFriendsDisposable; - - private boolean isLoaded; - - /** * 动态 */ @@ -138,12 +106,23 @@ public class HomeFragment extends BaseMvpFragment mFragments = new ArrayList<>(); + @NonNull + private final List mTabInfoList = new ArrayList<>(); + private FragmentGameHomeBinding mBinding; + private List mFragmentsBottom; + private Handler uiHandler; + private boolean needAutoScroll = true; + private HomeAddFriendsAdapter addFriendsAdapter; + private BannerAdapter bannerAdapter; + @Nullable + private Disposable addFriendsDisposable; + private boolean isLoaded; private HomeConcernsAdapter mFollowRoomsAdapter; @Override @@ -163,7 +142,7 @@ public class HomeFragment extends BaseMvpFragment() { - @Override - public void onSuccess(RoomInfo data) { - if (data.getType() != 0 - && data.getType() != roomType - && data.isValid()) { - String message = roomType == RoomInfo.ROOMTYPE_CP ? "创建陪伴房,将关闭当前房间并解散房间内的用户" - : "创建普通房,将关闭当前房间并解散房间内的用户"; - getDialogManager().showOkCancelDialog( - message, - "确认", - "取消", - new DialogManager.OkCancelDialogListener() { - @Override - public void onCancel() { - - } - - @Override - public void onOk() { -// openRoom(roomType); - changeRoomState(data.getWorldId(), roomType); - } - }); - } else { -// openRoom(roomType); - changeRoomState(data.getWorldId(), roomType); - } - } - - @Override - public void onFail(int code, String error) { -// openRoom(roomType); - changeRoomState(0, roomType); - } - - }); - } - - private int mRoomType; - - private void changeRoomState(long worldId, int roomType) { - mRoomType = roomType; - if (worldId == 0) { - openRoom(roomType); - - } else { - getMvpPresenter().roomWorldModeClose(AuthModel.get().getCurrentUid()); - } - } - - private void openRoom(int roomType) { - RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo; - if (roomInfo != null) { - if (roomInfo.getUid() == AuthModel.get().getCurrentUid() - && roomInfo.getType() == roomType) { - AVRoomActivity.start(mContext, roomInfo.getUid()); - } else { - getBaseActivity().getDialogManager().showProgressDialog(getActivity(), getBaseActivity().getString(R.string.waiting_text)); - getMvpPresenter().requestExitRoom(roomType); - } - } else { - getBaseActivity().getDialogManager().showProgressDialog(getActivity(), getBaseActivity().getString(R.string.waiting_text)); - getMvpPresenter().requestOpenRoom(roomType); - } - } - @Override public void requestOpenRoomResult(int openRoomFailType, Object... arg) { - getBaseActivity().getDialogManager().dismissDialog(); - if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_SUCCESS) { - RoomInfo roomInfo = (RoomInfo) arg[0]; - AVRoomActivity.start(getActivity(), roomInfo.getUid()); - } else if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_FAIL_TYPE_IN_ROOM) { - RoomInfo roomInfo = (RoomInfo) arg[0]; - getBaseActivity().getDialogManager().showProgressDialog(getActivity(), "请稍后..."); - getMvpPresenter().requestExitRoom(roomInfo.getType()); - } else if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_FAIL) { - String error = (String) arg[0]; - getBaseActivity().toast(error); - } else if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_FAIL_ALREADY_OPENED_ROOM) { - RoomInfo roomInfo = (RoomInfo) arg[0]; - AVRoomActivity.start(getActivity(), roomInfo.getUid()); - } else if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_FAIL_PM_LIMIT_TIME) { - if (getActivity() != null && getActivity() instanceof MainActivity) { - if (arg != null && arg.length > 0 && arg[0] instanceof String) { - ((MainActivity) getActivity()).handleOpenRoomWhenPmLimit((String) arg[0]); - } - } - } } @Override @@ -507,7 +336,7 @@ public class HomeFragment extends BaseMvpFragment mTabInfoList = new ArrayList<>(); - @Override public void onGetHomeTagSuccess(List info) { boolean changed = false; diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/MainFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/MainFragment.java index c689004c2..c8d09421d 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/MainFragment.java +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/MainFragment.java @@ -1,58 +1,38 @@ package com.yizhuan.erban.home.fragment; -import android.text.Spannable; -import android.text.SpannableStringBuilder; -import android.text.style.ForegroundColorSpan; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.viewpager.widget.ViewPager; import com.yizhuan.erban.R; -import com.yizhuan.erban.avroom.activity.AVRoomActivity; import com.yizhuan.erban.base.BaseMvpFragment; -import com.yizhuan.erban.common.widget.dialog.DialogManager; import com.yizhuan.erban.home.adapter.FragmentViewPagerAdapter; import com.yizhuan.erban.home.adapter.TopMagicIndicatorAdapter; -import com.yizhuan.xchat_android_core.home.bean.HomeTagInfo; -import com.yizhuan.erban.home.dialog.CreateRoomDialog; +import com.yizhuan.erban.home.helper.OpenRoomHelper; import com.yizhuan.erban.home.presenter.MainFragmentPresenter; import com.yizhuan.erban.home.view.IMainFragmentTabBg; import com.yizhuan.erban.home.view.IMainFragmentView; import com.yizhuan.erban.ui.search.SearchActivity; -import com.yizhuan.erban.ui.webview.CommonWebViewActivity; import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator; import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper; import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil; import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator; import com.yizhuan.erban.ui.widget.magicindicator.ext.MainCommonNavigatorAdapter; -import com.yizhuan.xchat_android_core.UriProvider; -import com.yizhuan.xchat_android_core.auth.AuthModel; -import com.yizhuan.xchat_android_core.certification.CertificationModel; import com.yizhuan.xchat_android_core.home.bean.BannerInfo; import com.yizhuan.xchat_android_core.home.bean.HomeConcernsInfo; +import com.yizhuan.xchat_android_core.home.bean.HomeTagInfo; import com.yizhuan.xchat_android_core.home.bean.TagListInfo; -import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; import com.yizhuan.xchat_android_core.market_verify.MarketVerifyModel; import com.yizhuan.xchat_android_core.room.bean.RoomInfo; -import com.yizhuan.xchat_android_core.room.model.AvRoomModel; -import com.yizhuan.xchat_android_core.user.UserModel; -import com.yizhuan.xchat_android_core.user.bean.UserInfo; import com.yizhuan.xchat_android_library.base.factory.CreatePresenter; -import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack; import com.yizhuan.xchat_android_library.utils.AppMetaDataUtil; import java.util.ArrayList; import java.util.List; -import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_FORCE; -import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_GUIDE; -import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_NONE; - /** *

首页 fragment

* @@ -77,6 +57,8 @@ public class MainFragment extends BaseMvpFragment() { - @Override - public void onSuccess(RoomInfo data) { - if (data.getType() != 0 - && data.getType() != roomType - && data.isValid()) { - String message = roomType == RoomInfo.ROOMTYPE_CP ? "创建陪伴房,将关闭当前房间并解散房间内的用户" - : "创建普通房,将关闭当前房间并解散房间内的用户"; - getDialogManager().showOkCancelDialog( - message, - "确认", - "取消", - new DialogManager.OkCancelDialogListener() { - @Override - public void onCancel() { - - } - - @Override - public void onOk() { -// openRoom(roomType); - changeRoomState(data.getWorldId(), roomType); - } - }); - } else { -// openRoom(roomType); - changeRoomState(data.getWorldId(), roomType); - } - } - - @Override - public void onFail(int code, String error) { -// openRoom(roomType); - changeRoomState(0, roomType); - } - }); - } - - private int mRoomType; - private void changeRoomState(long worldId, int roomType) { - mRoomType = roomType; - if (worldId == 0) { - openRoom(roomType); - - } else { - getMvpPresenter().roomWorldModeClose(AuthModel.get().getCurrentUid()); - } - } - private void openRoom(int roomType) { - RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo; - if (roomInfo != null) { - if (roomInfo.getUid() == AuthModel.get().getCurrentUid() - && roomInfo.getType() == roomType) { - AVRoomActivity.start(mContext, roomInfo.getUid()); - } else { - getBaseActivity().getDialogManager().showProgressDialog(getActivity(), getBaseActivity().getString(R.string.waiting_text)); - getMvpPresenter().requestExitRoom(roomType); - } - } else { - getBaseActivity().getDialogManager().showProgressDialog(getActivity(), getBaseActivity().getString(R.string.waiting_text)); - getMvpPresenter().requestOpenRoom(roomType); + } else if (id == ivOpenRoom.getId()) { + OpenRoomHelper.openRoom(getBaseActivity()); } } @@ -245,33 +96,13 @@ public class MainFragment extends BaseMvpFragment mTabInfoList) { @@ -291,13 +122,13 @@ public class MainFragment extends BaseMvpFragment tagListInfoList){ + public void showByMarketCheckingStatus(List tagListInfoList) { //审核包隐藏搜索 - if (MarketVerifyModel.get().isMarketChecking()){ + if (MarketVerifyModel.get().isMarketChecking()) { ivSearchRoom.setVisibility(View.INVISIBLE); ivSearchRoom.setEnabled(false); - }else { + } else { ivSearchRoom.setVisibility(View.VISIBLE); ivSearchRoom.setEnabled(true); } @@ -372,8 +203,6 @@ public class MainFragment extends BaseMvpFragment implements View.OnClickListener, IMainFragmentView { +public class MeFragment extends BaseFragment implements View.OnClickListener { public static final String TAG = "MeFragment"; @@ -141,8 +114,6 @@ public class MeFragment extends BaseMvpFragment onGetRelationShipEvent(e)) ); - onMarketVerifyUpdateEvent(null); - //模厅 HallDataManager.get().registerHallExist(this, hallExist -> { if (HallDataManager.get().isClanElder()) { @@ -291,7 +262,7 @@ public class MeFragment extends BaseMvpFragment() { - @Override - public void onSuccess(RoomInfo data) { - if (data.getType() != 0 - && data.getType() != roomType - && data.isValid()) { - String message = roomType == RoomInfo.ROOMTYPE_CP ? "创建陪伴房,将关闭当前房间并解散房间内的用户" - : "创建普通房,将关闭当前房间并解散房间内的用户"; - getDialogManager().showOkCancelDialog( - message, - "确认", - "取消", - new DialogManager.OkCancelDialogListener() { - @Override - public void onCancel() { - - } - - @Override - public void onOk() { -// openRoom(roomType); - changeRoomState(data.getWorldId(), roomType); - } - }); - } else { -// openRoom(roomType); - changeRoomState(data.getWorldId(), roomType); - } - } - - @Override - public void onFail(int code, String error) { -// openRoom(roomType); - changeRoomState(0, roomType); - } - - }); - } - - private int mRoomType; - - private void changeRoomState(long worldId, int roomType) { - mRoomType = roomType; - if (worldId == 0) { - openRoom(roomType); - - } else { - getMvpPresenter().roomWorldModeClose(AuthModel.get().getCurrentUid()); - } - } - - @NonNull - private SpannableStringBuilder getCertificationTips() { - String tips = getString(R.string.tips_need_to_certification); - SpannableStringBuilder builder = new SpannableStringBuilder(tips); - builder.setSpan(new ForegroundColorSpan(ContextCompat.getColor(getContext(), R.color.appColor)), - tips.length() - 4, tips.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - return builder; - } - - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onMarketVerifyUpdateEvent(MarketVerifyUpdateEvent event) { - //审核包隐藏tab - if (MarketVerifyModel.get().isMarketChecking()) { -// mBinding.meItemMyFamily.setVisibility(View.GONE); - } - } - - @Override - public void requestOpenRoomResult(int openRoomFailType, Object... arg) { - getBaseActivity().getDialogManager().dismissDialog(); - if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_SUCCESS) { - RoomInfo roomInfo = (RoomInfo) arg[0]; - AVRoomActivity.start(getActivity(), roomInfo.getUid()); - } else if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_FAIL_TYPE_IN_ROOM) { - RoomInfo roomInfo = (RoomInfo) arg[0]; - getBaseActivity().getDialogManager().showProgressDialog(getActivity(), "请稍后..."); - getMvpPresenter().requestExitRoom(roomInfo.getType()); - - } else if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_FAIL) { - String error = (String) arg[0]; - getBaseActivity().toast(error); - } else if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_FAIL_ALREADY_OPENED_ROOM) { - RoomInfo roomInfo = (RoomInfo) arg[0]; - AVRoomActivity.start(getActivity(), roomInfo.getUid()); - } else if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_FAIL_PM_LIMIT_TIME) { - if (getActivity() != null && getActivity() instanceof MainActivity) { - if (arg != null && arg.length > 0 && arg[0] instanceof String) { - ((MainActivity) getActivity()).handleOpenRoomWhenPmLimit((String) arg[0]); - } - } - } - } - - @Override - public void showByMarketCheckingStatus(List tagListInfoList) { - - } - - @Override - public void getFollowRoomsSuccess(List infos) { - - } - - @Override - public void getFollowRoomFail() { - - } - - @Override - public void exitRoom(RoomInfo roomInfo) { - - } - - @Override - public void titleListSuccess(List tagListInfoList) { - - } - - @Override - public void titleListFail(String msg) { - - } - - @Override - public void onGetFirstPageBannerFailed(String message) { - - } - - @Override - public void roomWorldModeCloseSuccess() { - openRoom(mRoomType); - } - - @Override - public void roomWorldModeCloseFail(String error) { - toast(error); - } - - @Override - public void onGetHomeBannerSuccess(List bannerInfos) { - - } - - @Override - public void onGetHomeTagSuccess(List tagInfos) { - - } - - @Override - public void getRoomShortcut(String data) { - - } - } diff --git a/app/src/main/java/com/yizhuan/erban/home/helper/OpenRoomHelper.java b/app/src/main/java/com/yizhuan/erban/home/helper/OpenRoomHelper.java new file mode 100644 index 000000000..2dbeb7834 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/home/helper/OpenRoomHelper.java @@ -0,0 +1,202 @@ +package com.yizhuan.erban.home.helper; + +import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_FORCE; +import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_GUIDE; +import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_NONE; + +import android.annotation.SuppressLint; +import android.text.Spannable; +import android.text.SpannableStringBuilder; +import android.text.TextUtils; +import android.text.style.ForegroundColorSpan; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.yizhuan.erban.MainActivity; +import com.yizhuan.erban.R; +import com.yizhuan.erban.avroom.activity.AVRoomActivity; +import com.yizhuan.erban.base.BaseActivity; +import com.yizhuan.erban.common.widget.dialog.DialogManager; +import com.yizhuan.erban.home.presenter.MainFragmentPresenter; +import com.yizhuan.erban.ui.webview.CommonWebViewActivity; +import com.yizhuan.xchat_android_core.UriProvider; +import com.yizhuan.xchat_android_core.auth.AuthModel; +import com.yizhuan.xchat_android_core.certification.CertificationModel; +import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; +import com.yizhuan.xchat_android_core.patriarch.exception.PmRoomLimitException; +import com.yizhuan.xchat_android_core.room.bean.RoomInfo; +import com.yizhuan.xchat_android_core.room.model.AvRoomModel; +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.UserInfo; +import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver; +import com.yizhuan.xchat_android_core.utils.net.RxHelper; +import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack; + +public class OpenRoomHelper { + + public static void openRoom(BaseActivity activity) { + UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); + if (userInfo != null && !userInfo.isCertified()) { + switch (CertificationModel.get().getCertificationType()) { + default: + case CER_TYPE_NONE: + openNormalRoom(activity); + break; + case CER_TYPE_FORCE: + activity.getDialogManager().showTipsDialog(getCertificationTips(activity), + activity.getString(R.string.go_to_certification), + new DialogManager.AbsOkDialogListener() { + @Override + public void onOk() { + // 跳去实名认证页面 + CommonWebViewActivity.start(activity, + UriProvider.getTutuRealNamePage()); + } + }); + break; + case CER_TYPE_GUIDE: + activity.getDialogManager().showTipsDialog(getCertificationTips(activity), + activity.getString(R.string.go_to_certification), + new DialogManager.OkCancelDialogListener() { + @Override + public void onCancel() { + openNormalRoom(activity); + } + + @Override + public void onOk() { + // 跳去实名认证页面 + CommonWebViewActivity.start(activity, + UriProvider.getTutuRealNamePage()); + } + }); + break; + } + } else { + openNormalRoom(activity); + } + } + + private static void openNormalRoom(BaseActivity activity) { + StatisticManager.Instance().onEvent(StatisticsProtocol.Event.game_homepage_createroom_ordinary_click, "创建普通房"); + RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo; + if (roomInfo != null && roomInfo.getUid() == AuthModel.get().getCurrentUid()) { + AVRoomActivity.start(activity, roomInfo.getUid()); + } else { + activity.getDialogManager().showProgressDialog(activity, activity.getString(R.string.waiting_text)); + requestOpenRoom(activity); + } + } + + @NonNull + private static SpannableStringBuilder getCertificationTips(BaseActivity activity) { + String tips = activity.getString(R.string.tips_need_to_certification); + SpannableStringBuilder builder = new SpannableStringBuilder(tips); + builder.setSpan(new ForegroundColorSpan(ContextCompat.getColor(activity, R.color.appColor)), + tips.length() - 4, tips.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + return builder; + } + + /** + * 开启房间 + */ + public static void requestOpenRoom(BaseActivity activity) { + AvRoomModel.get().requestRoomInfoV2(String.valueOf(AuthModel.get().getCurrentUid()), 0) + .compose(RxHelper.bindActivity(activity)) + .subscribe(new DontWarnObserver() { + @Override + public void acceptThrowable(RoomInfo roomInfo, Throwable throwable) { + super.acceptThrowable(roomInfo, throwable); + if (roomInfo != null) { + if (roomInfo.isValid()) { + requestOpenRoomResult(activity, MainFragmentPresenter.OPEN_ROOM_SUCCESS, roomInfo); + } else { + openRoom(activity, roomInfo); + } + } else { + if (throwable instanceof PmRoomLimitException) { + requestOpenRoomResult(activity, MainFragmentPresenter.OPEN_ROOM_FAIL_PM_LIMIT_TIME, + throwable.getMessage()); + } else if (!TextUtils.isEmpty(throwable.getMessage())) { + requestOpenRoomResult(activity, MainFragmentPresenter.OPEN_ROOM_FAIL, + throwable.getMessage()); + + } + } + } + }); + + } + + @SuppressLint("CheckResult") + private static void openRoom(BaseActivity activity, RoomInfo roomInfo) { + AvRoomModel.get().openRoom( + AuthModel.get().getCurrentUid(), roomInfo.getType(), roomInfo.getTitle(), roomInfo.getRoomDesc(), roomInfo.getBackPic(), null) + .compose(RxHelper.bindActivity(activity)) + .subscribe((roomResult, throwable) -> { + if (throwable != null) { + onOpenRoomFail(activity, throwable.getMessage()); + } else if (roomResult != null && roomResult.isSuccess()) { + requestOpenRoomResult(activity, MainFragmentPresenter.OPEN_ROOM_SUCCESS, roomInfo); + } else if (roomResult != null && !roomResult.isSuccess()) { + if (roomResult.getCode() == 1500) { + requestOpenRoomResult(activity, MainFragmentPresenter.OPEN_ROOM_FAIL_ALREADY_OPENED_ROOM, roomInfo); + } else { + onOpenRoomFail(activity, roomResult.getError()); + } + } else { + onOpenRoomFail(activity, "未知错误"); + } + }); + } + + /** + * 请求退出房间 + */ + public static void requestExitRoom(BaseActivity activity, RoomInfo roomInfo) { + AvRoomModel.get().exitRoom(new CallBack() { + @Override + public void onSuccess(RoomInfo data) { + openRoom(activity, roomInfo); + } + + @Override + public void onFail(int code, String error) { + requestOpenRoomResult(activity, MainFragmentPresenter.OPEN_ROOM_FAIL, error); + } + }); + + } + + private static void onOpenRoomFail(BaseActivity activity, String error) { + requestOpenRoomResult(activity, MainFragmentPresenter.OPEN_ROOM_FAIL, error); + } + + public static void requestOpenRoomResult(BaseActivity activity, int openRoomFailType, Object... arg) { + activity.getDialogManager().dismissDialog(); + if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_SUCCESS) { + RoomInfo roomInfo = (RoomInfo) arg[0]; + AVRoomActivity.start(activity, roomInfo.getUid()); + } else if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_FAIL_TYPE_IN_ROOM) { + RoomInfo roomInfo = (RoomInfo) arg[0]; + activity.getDialogManager().showProgressDialog(activity, "请稍后..."); + requestExitRoom(activity, roomInfo); + } else if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_FAIL) { + String error = (String) arg[0]; + activity.toast(error); + } else if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_FAIL_ALREADY_OPENED_ROOM) { + RoomInfo roomInfo = (RoomInfo) arg[0]; + AVRoomActivity.start(activity, roomInfo.getUid()); + } else if (openRoomFailType == MainFragmentPresenter.OPEN_ROOM_FAIL_PM_LIMIT_TIME) { + if (activity instanceof MainActivity) { + if (arg != null && arg.length > 0 && arg[0] instanceof String) { + ((MainActivity) activity).handleOpenRoomWhenPmLimit((String) arg[0]); + } + } + } + } + +} diff --git a/app/src/main/res/layout/item_home_concerns.xml b/app/src/main/res/layout/item_home_concerns.xml index 2e306ee90..555802465 100644 --- a/app/src/main/res/layout/item_home_concerns.xml +++ b/app/src/main/res/layout/item_home_concerns.xml @@ -43,7 +43,7 @@ android:paddingBottom="1dp" android:text="直播中" android:textColor="@color/white" - android:textSize="@dimen/dp_11" + android:textSize="@dimen/dp_10" tools:visibility="visible" />