diff --git a/common/src/main/res/values-en/strings.xml b/common/src/main/res/values-en/strings.xml index 2125c90dd..5c3cc7452 100644 --- a/common/src/main/res/values-en/strings.xml +++ b/common/src/main/res/values-en/strings.xml @@ -869,4 +869,5 @@ Limited ride And limited avatar frame Effect settings Shield gift effect Shield car effect + You are in the current live room diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index 749000e2d..8748fdc6a 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -243,7 +243,7 @@ 收穫 觀看人數 關播中 - 一起来聊聊天吧~ + 一起來聊聊天吧~ 開啟彈幕, 請輸入房間密碼 @@ -882,4 +882,5 @@ 特效設置 屏蔽禮物特效 屏蔽座駕特效 + 您已在當前直播間 diff --git a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java index eca917db9..0d4f75635 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java @@ -293,7 +293,7 @@ public class LiveAudienceActivity extends LiveActivity { mStream = liveBean1.getStream(); mAncherName = liveBean1.getUserNiceName(); mAncherIcon = liveBean1.getAvatar(); - Log.e("收到socket--->", "mLiveUid--------------------------->" + mLiveUid); + Log.e(TAG, "mLiveUid--------------------------->" + mLiveUid); //加载当前页面数据 View rootView = manager.getRootView(); if (rootView.getParent() != null && rootView.getParent() instanceof ViewGroup) { @@ -796,8 +796,8 @@ public class LiveAudienceActivity extends LiveActivity { intent.putExtra(Constants.LIVE_SDK, liveSdk); intent.putExtra(Constants.LIVE_SDK, liveSdk); intent.putExtra("landscape", liveBean.getLandscape()); -// intent.putExtra("isry", true); context.startActivity(intent); + } /** diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveHDDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveHDDialogFragment.java index b53d052ee..f3a4d06d2 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveHDDialogFragment.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveHDDialogFragment.java @@ -1,9 +1,5 @@ package com.yunbao.live.dialog; -import static com.yunbao.common.CommonAppContext.logger; -import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics; -import static com.yunbao.common.utils.RouteUtil.PATH_COIN; - import android.content.Intent; import android.graphics.Color; import android.os.Build; @@ -34,19 +30,27 @@ import com.yunbao.common.dialog.AbsDialogFragment; import com.yunbao.common.http.HttpCallback; import com.yunbao.common.utils.L; import com.yunbao.common.utils.RouteUtil; +import com.yunbao.common.utils.ToastUtil; import com.yunbao.live.R; import com.yunbao.live.activity.LiveActivity; import com.yunbao.live.activity.LiveAudienceActivity; import com.yunbao.live.activity.ZhuangBanActivity; import com.yunbao.live.bean.LiveBean; +import com.yunbao.live.event.LiveRoomChangeEvent; import com.yunbao.live.http.LiveHttpUtil; import com.yunbao.live.presenter.LiveRoomCheckLivePresenter; +import org.greenrobot.eventbus.EventBus; + +import static com.yunbao.common.CommonAppContext.logger; +import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics; +import static com.yunbao.common.utils.RouteUtil.PATH_COIN; + public class LiveHDDialogFragment extends AbsDialogFragment { private WebView mWebView; private int showType = 0; - private boolean isFullWindow=false; + private boolean isFullWindow = false; private String roomId; public LiveHDDialogFragment() { @@ -55,6 +59,7 @@ public class LiveHDDialogFragment extends AbsDialogFragment { /** * 弹出全屏对话框 + * * @param isFullWindow 是否为全屏模式 */ public LiveHDDialogFragment(boolean isFullWindow) { @@ -82,48 +87,32 @@ public class LiveHDDialogFragment extends AbsDialogFragment { window.setWindowAnimations(R.style.bottomToTopAnim); WindowManager.LayoutParams params = window.getAttributes(); params.width = WindowManager.LayoutParams.MATCH_PARENT; - if(isFullWindow){ - Display display=null; - window.setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT); - if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.R) { - display= requireContext().getDisplay(); + if (isFullWindow) { + Display display = null; + window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + display = requireContext().getDisplay(); window.getInsetsController().hide(WindowInsets.Type.statusBars()); window.getInsetsController().hide(WindowInsets.Type.navigationBars()); - }else { - display=window.getWindowManager().getDefaultDisplay(); + } else { + display = window.getWindowManager().getDefaultDisplay(); window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } - window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT); + window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); window.getDecorView().setBackgroundColor(Color.parseColor("#10000000")); params.height = WindowManager.LayoutParams.MATCH_PARENT; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { window.getDecorView().setMinimumHeight(display.getMode().getPhysicalHeight()); window.getDecorView().setMinimumWidth(display.getMode().getPhysicalWidth()); } - window.getDecorView().setPadding(10,-10,0,0); - }else { + window.getDecorView().setPadding(10, -10, 0, 0); + } else { params.height = WindowManager.LayoutParams.WRAP_CONTENT; } params.gravity = Gravity.BOTTOM; window.setAttributes(params); } -// @Override -// public void onStart() { -// super.onStart(); -//// Window window = getDialog().getWindow(); -//// window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); -//// WindowManager.LayoutParams windowParams = window.getAttributes(); -//// windowParams.dimAmount = 0.0f; -//// windowParams.y = 100; -//// window.setAttributes(windowParams); -//// Dialog dialog = getDialog(); -//// if (dialog != null) { -//// DisplayMetrics dm = new DisplayMetrics(); -//// getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); -//// dialog.getWindow().setLayout((int) (dm.widthPixels), (int) (dm.heightPixels * (showType == 0 ? 0.5 : 1))); -//// } -// } @Override public void onActivityCreated(Bundle savedInstanceState) { @@ -146,19 +135,19 @@ public class LiveHDDialogFragment extends AbsDialogFragment { if (bundle == null) { return; } - roomId=bundle.getString("roomId",null); + roomId = bundle.getString("roomId", null); mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); // 是否允许JS打开新窗口 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); } showType = bundle.getInt("show_type"); - if (showType==0){ + if (showType == 0) { findViewById(R.id.title_laout).setVisibility(View.GONE); - }else { + } else { findViewById(R.id.title_laout).setVisibility(View.VISIBLE); } - if(bundle.getInt("height",-1)!=-1) { - LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, bundle.getInt("height",-1)); + if (bundle.getInt("height", -1) != -1) { + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, bundle.getInt("height", -1)); mWebView.setLayoutParams(params); } mWebView.loadUrl(bundle.getString("url")); @@ -182,7 +171,7 @@ public class LiveHDDialogFragment extends AbsDialogFragment { @JavascriptInterface public void androidGoTopUp() { - ARouter.getInstance().build(PATH_COIN).withInt("p", 0).withString("tag", "&first_page=1").navigation(); + ARouter.getInstance().build(PATH_COIN).withInt("p", 0).withString("tag", "&first_page=1").navigation(); dismiss(); } @@ -224,19 +213,34 @@ public class LiveHDDialogFragment extends AbsDialogFragment { dismiss(); ((LiveAudienceActivity) mContext).openGiftWindow(); } + @JavascriptInterface - public void androidGoBack(){ + public void androidGoBack() { dismiss(); } @JavascriptInterface public void androidMethodLookToLive(String liveId) { - //看直播 - gotoLive(liveId); + + mWebView.post(new Runnable() { + @Override + public void run() { + if (TextUtils.equals(roomId, liveId)) { + ToastUtil.show(R.string.current_live_room); + dismiss(); + } else { + //看直播 + gotoLive(liveId); + } + + } + }); + } + @JavascriptInterface - public void androidClickToNewH5PageView(String url){ + public void androidClickToNewH5PageView(String url) { url = CommonAppConfig.HOST + url; url += "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken(); @@ -248,36 +252,38 @@ public class LiveHDDialogFragment extends AbsDialogFragment { } } - private LiveRoomCheckLivePresenter mCheckLivePresenter; - private void gotoLive(final String live_id) { - if(roomId!=null&&roomId.equals(live_id)){ - return; - } - LiveHttpUtil.getLiveInfo(live_id, new HttpCallback() { - @Override - public void onSuccess(int code, String msg, String[] info) { - if (code == 0 && info.length > 0) { - LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class); - LiveRoomCheckLivePresenter.isRoom = false; - if (mCheckLivePresenter == null) { - mCheckLivePresenter = new LiveRoomCheckLivePresenter(mContext, new LiveRoomCheckLivePresenter.ActionListener() { - @Override - public void onLiveRoomChanged(LiveBean liveBean, int liveType, int liveTypeVal, int liveSdk) { - if (liveBean == null) { - return; - } - ((LiveAudienceActivity) mContext).finish(); - LiveAudienceActivity.forward(mContext, liveBean, liveType, liveTypeVal, "", 0, liveSdk); - } - }); + private LiveRoomCheckLivePresenter mCheckLivePresenter; + + private void gotoLive(final String live_id) { + if (!TextUtils.equals(roomId, live_id)) { + LiveHttpUtil.getLiveInfo(live_id, new HttpCallback() { + @Override + public void onSuccess(int code, String msg, String[] info) { + if (code == 0 && info.length > 0) { + LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class); + if (mCheckLivePresenter == null) { + LiveRoomCheckLivePresenter.isRoom = false; + mCheckLivePresenter = new LiveRoomCheckLivePresenter(mContext, new LiveRoomCheckLivePresenter.ActionListener() { + @Override + public void onLiveRoomChanged(LiveBean liveBean, int liveType, int liveTypeVal, int liveSdk) { + if (liveBean == null) { + return; + } + dismiss(); + EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, liveTypeVal)); + + } + }); + } + mCheckLivePresenter.checkLive(liveBean); + } else { + RouteUtil.forwardUserHome(mContext, live_id, 0); } - mCheckLivePresenter.checkLive(liveBean); - } else { - RouteUtil.forwardUserHome(mContext, live_id, 0); } - } - }); + }); + } + } /** diff --git a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java index 21b88efad..54ea19439 100644 --- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java +++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java @@ -166,7 +166,8 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe private LiveImDeletUtil liveImDeletUtil; private List greetings = new ArrayList<>(); private Handler liveHandler = new Handler(); - + //公共參數 + private OpenParametersModel openParametersModel = null; public PortraitLiveManager(Activity context, Intent intent) { this.mContext = context; @@ -204,6 +205,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe @Override public void onAdd(LiveBean data, int liveType, int liveTypeVal, int liveSdk) { + openParametersModel = new OpenParametersModel(); mContext.runOnUiThread(new Runnable() { @Override public void run() { @@ -217,7 +219,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe liveID = data.getUid(); Bus.get().post(new LiveAudienceEvent() .setType(LiveAudienceEvent.LiveAudienceType.OPEN_PARAMETERS) - .setParametersModel(new OpenParametersModel() + .setParametersModel(openParametersModel .setmLiveType(mLiveType) .setmLiveTypeVal(mLiveTypeVal))); @@ -1031,7 +1033,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe //回传参数 Bus.get().post(new LiveAudienceEvent() .setType(LiveAudienceEvent.LiveAudienceType.OPEN_PARAMETERS) - .setParametersModel(new OpenParametersModel().setmDanmuPrice(mDanmuPrice) + .setParametersModel(openParametersModel.setmDanmuPrice(mDanmuPrice) .setmSocketUserType(mSocketUserType) .setmChatLevel(mChatLevel) .setmDanMuLevel(mDanMuLevel) @@ -1209,7 +1211,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe } Bus.get().post(new LiveAudienceEvent() .setType(LiveAudienceEvent.LiveAudienceType.OPEN_PARAMETERS) - .setParametersModel(new OpenParametersModel().setmLiveGuardInfo(mLiveGuardInfo) + .setParametersModel(openParametersModel.setmLiveGuardInfo(mLiveGuardInfo) .setFansNum(fansNum) .setIs_fans(is_fans))); if (mLiveRoomViewHolder != null) {