修复活动banner快速点击会多次打开的问题

This commit is contained in:
zlzw 2022-10-27 16:52:06 +08:00
parent cccde7a3f8
commit 92ec8a3044
3 changed files with 64 additions and 34 deletions

View File

@ -4,6 +4,7 @@ import static com.yunbao.common.CommonAppContext.logger;
import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics; import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics;
import static com.yunbao.common.utils.RouteUtil.PATH_COIN; import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.os.Build; import android.os.Build;
@ -69,6 +70,7 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
private int activityId = -1; private int activityId = -1;
private LinearLayout layout; private LinearLayout layout;
private boolean isFullWindow = false; private boolean isFullWindow = false;
private DialogInterface.OnShowListener listener;
public LiveGameDialogFragment() { public LiveGameDialogFragment() {
@ -89,6 +91,10 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
this.activityId = activityId; this.activityId = activityId;
} }
public void setShowListener(DialogInterface.OnShowListener listener) {
this.listener = listener;
}
@Override @Override
protected int getLayoutId() { protected int getLayoutId() {
return R.layout.dialog_live_game; return R.layout.dialog_live_game;
@ -167,6 +173,9 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
@Override @Override
public void onPageFinished(WebView view, String url) { public void onPageFinished(WebView view, String url) {
// view.loadUrl("javascript:window.androidObject.setHeight(document.body.clientHeight,document.body.clientWidth)"); // view.loadUrl("javascript:window.androidObject.setHeight(document.body.clientHeight,document.body.clientWidth)");
if (listener != null) {
listener.onShow(LiveGameDialogFragment.this.getDialog());
}
} }
}); });
initData(); initData();
@ -270,6 +279,7 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
this.roomId = roomId; this.roomId = roomId;
} }
//js调用原生 //js调用原生
public class JsInteration { public class JsInteration {
@JavascriptInterface @JavascriptInterface

View File

@ -4,6 +4,7 @@ import static com.yunbao.common.CommonAppContext.logger;
import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics; import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics;
import static com.yunbao.common.utils.RouteUtil.PATH_COIN; import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.os.Build; import android.os.Build;
@ -57,6 +58,7 @@ public class LiveHDDialogFragment extends AbsDialogFragment {
private int showType = 0; private int showType = 0;
private boolean isFullWindow = false; private boolean isFullWindow = false;
private String roomId; private String roomId;
private DialogInterface.OnShowListener listener;
public LiveHDDialogFragment() { public LiveHDDialogFragment() {
@ -86,6 +88,10 @@ public class LiveHDDialogFragment extends AbsDialogFragment {
return true; return true;
} }
public void setShowListener(DialogInterface.OnShowListener listener) {
this.listener = listener;
}
@Override @Override
protected void setWindowAttributes(Window window) { protected void setWindowAttributes(Window window) {
@ -172,6 +178,9 @@ public class LiveHDDialogFragment extends AbsDialogFragment {
@Override @Override
public void onPageFinished(WebView view, String url) { public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:window.androidObject.setHeight(document.body.clientHeight,document.body.clientWidth)"); view.loadUrl("javascript:window.androidObject.setHeight(document.body.clientHeight,document.body.clientWidth)");
if (listener != null) {
listener.onShow(LiveHDDialogFragment.this.getDialog());
}
} }
}); });
if (bundle.getBoolean("banScrollY", false)) { if (bundle.getBoolean("banScrollY", false)) {

View File

@ -7,10 +7,12 @@ import static com.yunbao.live.bean.LiveChatBean.RECOMMEND_CARD_NOTIFY;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Outline; import android.graphics.Outline;
import android.os.Bundle; import android.os.Bundle;
import android.os.CountDownTimer; import android.os.CountDownTimer;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import android.os.Message; import android.os.Message;
import android.os.SystemClock; import android.os.SystemClock;
import android.text.TextUtils; import android.text.TextUtils;
@ -3002,28 +3004,34 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
public void onBannerClick(List datas, int p) { public void onBannerClick(List datas, int p) {
Log.i("debug", "onBannerClick: " + mBannerList4.get(p).toString()); Log.i("debug", "onBannerClick: " + mBannerList4.get(p).toString());
BannerBean bean = mBannerList4.get(p); BannerBean bean = mBannerList4.get(p);
loadingDialog = DialogUitl.loadingDialog(mContext); if (loadingDialog == null) {
loadingDialog.show(); loadingDialog = DialogUitl.loadingDialog(mContext, WordUtil.getString(R.string.login_wait));
}
loadingDialog.setOnShowListener(dialog -> {
if (bean.getActivityId() == -1) {//-1写死跳活动弹窗 if (bean.getActivityId() == -1) {//-1写死跳活动弹窗
Bus.get().post(new LiveAudienceEvent() Bus.get().post(new LiveAudienceEvent()
.setActivity(true) .setActivity(true)
.setType(LiveAudienceEvent.LiveAudienceType.BOTTOM_COLLECTION)); .setType(LiveAudienceEvent.LiveAudienceType.BOTTOM_COLLECTION));
if (loadingDialog != null && loadingDialog.isShowing()) { new Handler(Looper.getMainLooper()).postDelayed(() -> {
loadingDialog.dismiss(); loadingDialog.dismiss();
loadingDialog = null; loadingDialog = null;
} }, 300);
} else if (bean.getActivityId() == 0) { } else if (bean.getActivityId() == 0) {
openWebDialog(bean.getLink()); openWebDialog(bean.getLink());
} else { } else {
LiveGameDialogFragment fragment = new LiveGameDialogFragment("1".equals(bean.getShow_type())); LiveGameDialogFragment fragment = new LiveGameDialogFragment("1".equals(bean.getShow_type()));
fragment.setActivityId(bean.getActivityId()); fragment.setActivityId(bean.getActivityId());
fragment.setRoomId(mLiveUid); fragment.setRoomId(mLiveUid);
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGameDialogFragment"); fragment.setShowListener(dialog1 -> {
if (loadingDialog != null && loadingDialog.isShowing()) { new Handler(Looper.getMainLooper()).postDelayed(() -> {
loadingDialog.dismiss(); loadingDialog.dismiss();
loadingDialog = null; loadingDialog = null;
}, 300);
});
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGameDialogFragment");
} }
} });
loadingDialog.show();
} }
@ -3047,11 +3055,14 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
bundle1.putString("url", url); bundle1.putString("url", url);
LiveHDDialogFragment liveHDDialogFragment = new LiveHDDialogFragment(); LiveHDDialogFragment liveHDDialogFragment = new LiveHDDialogFragment();
liveHDDialogFragment.setArguments(bundle1); liveHDDialogFragment.setArguments(bundle1);
liveHDDialogFragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); liveHDDialogFragment.setShowListener(dialog1 -> {
if (loadingDialog != null && loadingDialog.isShowing()) { new Handler(Looper.getMainLooper()).postDelayed(() -> {
loadingDialog.dismiss(); loadingDialog.dismiss();
loadingDialog = null; loadingDialog = null;
} }, 300);
});
liveHDDialogFragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
} }
}) })
.start(); .start();