diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8d8a3325c..0b83186e1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -162,6 +162,9 @@
+
diff --git a/app/src/main/java/com/shayu/phonelive/AppContext.java b/app/src/main/java/com/shayu/phonelive/AppContext.java
index f23dc1ea8..af4de4c66 100644
--- a/app/src/main/java/com/shayu/phonelive/AppContext.java
+++ b/app/src/main/java/com/shayu/phonelive/AppContext.java
@@ -30,6 +30,7 @@ import com.tencent.imsdk.v2.V2TIMGroupMemberInfo;
import com.tencent.imsdk.v2.V2TIMManager;
import com.tencent.imsdk.v2.V2TIMSimpleMsgListener;
import com.tencent.imsdk.v2.V2TIMUserInfo;
+import com.yunbao.common.manager.OpenAdManager;
import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.BuildConfig;
import com.yunbao.common.CommonAppConfig;
@@ -37,7 +38,6 @@ import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.AnchorStartLiveBean;
import com.yunbao.common.bean.CrashSaveBean;
-import com.yunbao.common.dialog.DebugDialog;
import com.yunbao.common.event.SudGameSocketImEvent;
import com.yunbao.common.manager.imrongcloud.InstructorSendReward;
import com.yunbao.common.manager.imrongcloud.InstructorSendRewardProvider;
@@ -55,6 +55,7 @@ import com.yunbao.live.socket.SocketSwClient;
import com.yunbao.live.utils.LiveImDeletUtil;
import com.yunbao.live.views.PortraitLiveManager;
import com.yunbao.live.views.RecommendLiveRoomProvider;
+import com.yunbao.main.activity.LoginActivity;
import com.yunbao.main.activity.MsgSettActivity;
import org.greenrobot.eventbus.EventBus;
@@ -109,20 +110,25 @@ public class AppContext extends CommonAppContext {
@Override
public void onActivityDestroyed(@NonNull Activity activity) {
+ AppManager.getInstance().removeActivity(activity);
for (WeakReference reference : activities) {
if (reference.get() == activity) {
activities.remove(reference);
return;
}
}
- AppManager.getInstance().removeActivity(activity);
+
}
@Override
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
activities.add(new WeakReference<>(activity));
+ if(activity instanceof LoginActivity){
+ AppManager.getInstance().clear();
+ }
CrashSaveBean.getInstance().setActivitySize(activities);
AppManager.getInstance().addActivity(activity);
+ OpenAdManager.getInstance().dismiss();
}
@Override
diff --git a/app/src/main/java/com/shayu/phonelive/activity/LauncherActivity.java b/app/src/main/java/com/shayu/phonelive/activity/LauncherActivity.java
index f0619923c..7f872d4e3 100644
--- a/app/src/main/java/com/shayu/phonelive/activity/LauncherActivity.java
+++ b/app/src/main/java/com/shayu/phonelive/activity/LauncherActivity.java
@@ -113,6 +113,7 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
res.updateConfiguration(config, res.getDisplayMetrics());
return res;
}
+
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);
@@ -144,7 +145,11 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
}
};
mHandler.sendEmptyMessageDelayed(WHAT_GET_CONFIG, 1000);
- LogUtil.uploadErrorLog(AppContext.sInstance);
+ try {
+ LogUtil.uploadErrorLog(AppContext.sInstance);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
SpUtil.getInstance().setBooleanValue("NOTIFICATION", NotificationManagerCompat.from(this).areNotificationsEnabled());
}
@@ -229,7 +234,7 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
} else {
checkUidAndToken();
}
- }else{
+ } else {
ToastUtil.show(getString(R.string.net_error));
}
}
diff --git a/common/src/main/java/com/yunbao/common/CommonAppConfig.java b/common/src/main/java/com/yunbao/common/CommonAppConfig.java
index 2bcb30b32..fb294a2ef 100644
--- a/common/src/main/java/com/yunbao/common/CommonAppConfig.java
+++ b/common/src/main/java/com/yunbao/common/CommonAppConfig.java
@@ -37,6 +37,7 @@ public class CommonAppConfig {
public static final boolean IS_UPLOAD_ERROR_LOG = getMetaDataBoolean("IS_UPLOAD_ERROR_LOG");
//是否为插件包模式
public static final boolean IS_PLUGIN_MODEL = getMetaDataBoolean("IS_PLUGIN_MODEL");
+ public static final String BUILD_TIME = getMetaDataString("BUILD_TIME");
//外部sd卡
public static final String DCMI_PATH = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath();
diff --git a/common/src/main/java/com/yunbao/common/bean/OpenAdModel.java b/common/src/main/java/com/yunbao/common/bean/OpenAdModel.java
index 8260ee377..638334d48 100644
--- a/common/src/main/java/com/yunbao/common/bean/OpenAdModel.java
+++ b/common/src/main/java/com/yunbao/common/bean/OpenAdModel.java
@@ -2,7 +2,6 @@ package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import com.yunbao.common.CommonAppConfig;
-import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.StringUtil;
import java.text.ParseException;
@@ -22,6 +21,8 @@ public class OpenAdModel extends BaseModel {
public static final int SHOW_ONE = 3;//3. 仅弹出一次;
@SerializedName("id")
private int id;
+ @SerializedName("popup_name")
+ private String name;
@SerializedName("popup_location")
private int type = TYPE_HOME;
@SerializedName("activity_url")
@@ -35,24 +36,27 @@ public class OpenAdModel extends BaseModel {
@SerializedName("popup_model")
private int model = MODEL_SQUARE;
@SerializedName("start_show_time")
- private String startTime;//活动开始时间
+ private String startTime;//活动开始时间 1
@SerializedName("end_show_time")
- private String endTime;//活动结束时间
+ private String endTime;//活动结束时间 5
@SerializedName("popup_permission")
private int permission;
@SerializedName("popup_frequency")
private int showModel = SHOW_DEF;//显示模式,1:杀死程序后弹出 2:指定时间内(本机时间) 3:1. 仅弹出一次
@SerializedName("popup_frequency_time")
- private String section = "0";// SHOW_DEF = 2
-
+ private String section = "0";// SHOW_DEF = 2 1
+ @SerializedName("popup_sort")
+ private int popupSort = 1;//弹框类型 1.图片 2.H5
+ @SerializedName("sort")
+ private int sort = 0;
public OpenAdModel() {
}
public static OpenAdModel createTestData() {
OpenAdModel model = new OpenAdModel();
- model.id=3;
- model.type=1;
+ model.id = 3;
+ model.type = 1;
model.url = "/h5/GuildTournament/20230821/rank.html";
model.imageUrl = "https://ceshi.yaoulive.com/data/upload/20230913/1694589490.png";
model.showTime = 10;
@@ -66,6 +70,30 @@ public class OpenAdModel extends BaseModel {
return model;
}
+ public int getPopupSort() {
+ return popupSort;
+ }
+
+ public int getSort() {
+ return sort;
+ }
+
+ public void setSort(int sort) {
+ this.sort = sort;
+ }
+
+ public void setPopupSort(int popupSort) {
+ this.popupSort = popupSort;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
public int getShowModel() {
return showModel;
}
@@ -91,12 +119,13 @@ public class OpenAdModel extends BaseModel {
}
public String getUrl() {
- if (!url.startsWith("http://") || !url.startsWith("https://")) {
- url = CommonAppConfig.HOST + url;
+ if (!url.startsWith("http://") && !url.startsWith("https://")) {
+ url = CommonAppConfig.HOST + (url.startsWith("/") ? url : "/" + url);
}
- return url + "?t=" + System.currentTimeMillis() / 1000;
+ return url;
}
- public String getOriginalUrl(){
+
+ public String getOriginalUrl() {
return url;
}
@@ -198,6 +227,7 @@ public class OpenAdModel extends BaseModel {
public String toString() {
return "OpenAdModel{" +
"id=" + id +
+ ", name='" + name + '\'' +
", type=" + type +
", url='" + url + '\'' +
", imageUrl='" + imageUrl + '\'' +
@@ -206,7 +236,10 @@ public class OpenAdModel extends BaseModel {
", model=" + model +
", startTime='" + startTime + '\'' +
", endTime='" + endTime + '\'' +
- ", permission='" + permission + '\'' +
+ ", permission=" + permission +
+ ", showModel=" + showModel +
+ ", section='" + section + '\'' +
+ ", sort=" + popupSort +
'}';
}
}
diff --git a/common/src/main/java/com/yunbao/common/dialog/DebugDialog.java b/common/src/main/java/com/yunbao/common/dialog/DebugDialog.java
index 48131bfbf..199516ba6 100644
--- a/common/src/main/java/com/yunbao/common/dialog/DebugDialog.java
+++ b/common/src/main/java/com/yunbao/common/dialog/DebugDialog.java
@@ -15,18 +15,20 @@ import com.lzf.easyfloat.EasyFloat;
import com.lzf.easyfloat.enums.ShowPattern;
import com.lzf.easyfloat.interfaces.OnPermissionResult;
import com.lzf.easyfloat.permission.PermissionUtils;
+import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.adapter.DebugDialogAdapter;
import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.ToastUtil;
import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.Timer;
import java.util.TimerTask;
public class DebugDialog {
RecyclerView recyclerView;
- HashMap params;
+ LinkedHashMap params;
DebugDialogAdapter adapter;
private static DebugDialog debugDialog;
Context mContext;
@@ -69,7 +71,7 @@ public class DebugDialog {
this.runnable = runnable;
if (params == null) {
Log.i("debug弹窗", "DebugDialog: 初始化参数");
- params = new HashMap<>();
+ params = new LinkedHashMap<>();
}
init();
}
@@ -102,6 +104,7 @@ public class DebugDialog {
}
public void show() {
+ if (recyclerView != null) return;
if (showPattern == ShowPattern.CURRENT_ACTIVITY) {
createView();
return;
@@ -136,7 +139,7 @@ public class DebugDialog {
EasyFloat.updateFloat("debug");
}
});
- params.put("debug弹窗", textView);
+ params.put("发包时间:" + CommonAppConfig.BUILD_TIME, textView);
adapter.setParamMap(params);
EasyFloat.with(mContext)
diff --git a/common/src/main/java/com/yunbao/common/dialog/OpenAdBottomDialogPopup.java b/common/src/main/java/com/yunbao/common/dialog/OpenAdBottomDialogPopup.java
index 072ab97a8..e878da2d2 100644
--- a/common/src/main/java/com/yunbao/common/dialog/OpenAdBottomDialogPopup.java
+++ b/common/src/main/java/com/yunbao/common/dialog/OpenAdBottomDialogPopup.java
@@ -1,7 +1,11 @@
package com.yunbao.common.dialog;
+import android.app.Activity;
import android.content.Context;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
import android.widget.ImageView;
+import android.widget.LinearLayout;
import androidx.annotation.NonNull;
@@ -9,12 +13,21 @@ import com.lxj.xpopup.XPopup;
import com.yunbao.common.R;
import com.yunbao.common.activity.WebViewActivity;
import com.yunbao.common.bean.OpenAdModel;
+import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.OnItemClickListener;
+import com.yunbao.common.manager.IMLoginManager;
+import com.yunbao.common.utils.DpUtil;
+import com.yunbao.common.utils.JavascriptInterfaceUtils;
+import com.yunbao.common.utils.L;
+import com.yunbao.common.utils.ScreenDimenUtil;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
public class OpenAdBottomDialogPopup extends AbsDialogPopupWindow {
- private ImageView mImageView;
private ImageView mClose;
+ private LinearLayout contentLayout;
private OpenAdModel model;
private OnItemClickListener mListener;
@@ -27,6 +40,11 @@ public class OpenAdBottomDialogPopup extends AbsDialogPopupWindow {
@Override
public void buildDialog(XPopup.Builder builder) {
builder.animationDuration(0);
+ builder.hasShadowBg(true);
+ if(model.getPopupSort()==2){
+ builder.dismissOnTouchOutside(false);
+ builder.dismissOnBackPressed(false);
+ }
}
@Override
@@ -51,8 +69,63 @@ public class OpenAdBottomDialogPopup extends AbsDialogPopupWindow {
@Override
protected void onCreate() {
super.onCreate();
- mImageView = findViewById(R.id.img);
+ contentLayout = findViewById(R.id.content_layout);
mClose = findViewById(R.id.close);
+ if (model.getPopupSort() == 1) {
+ setImage();
+ } else {
+ setWeb();
+ }
+
+ mClose.setOnClickListener(v -> dismiss());
+ if (model.getShowTime() > 0) {
+ mClose.postDelayed(this::dismiss, model.getShowTime());
+ }
+ }
+
+ private void setWeb() {
+ WebView mWebView = new WebView(mContext);
+ mWebView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
+ mWebView.addJavascriptInterface(JavascriptInterfaceUtils.getInstance().setmContext((Activity) mContext, mWebView).setPageClose(true).setLiveZhuangBana(false), "androidObject");
+ mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); // 是否允许JS打开新窗口
+ mWebView.getSettings().setJavaScriptEnabled(true);
+ mWebView.getSettings().setDomStorageEnabled(true);
+ String appCachePath = mContext.getCacheDir().getAbsolutePath();
+// mWebView.getSettings().setAppCachePath(appCachePath);
+ mWebView.getSettings().setAllowFileAccess(true);
+ mWebView.getSettings().setUseWideViewPort(true); // 关键点
+ mWebView.getSettings().setAllowFileAccess(true); // 允许访问文件
+ mWebView.setHorizontalScrollBarEnabled(false);
+ mWebView.setVerticalScrollBarEnabled(false);
+ mWebView.setWebViewClient(new WebViewClient() {
+ @Override
+ public boolean shouldOverrideUrlLoading(WebView view, String url) {
+ L.e("H5-------->" + url);
+ view.loadUrl(url);
+
+ return true;
+ }
+
+ @Override
+ public void onPageFinished(WebView view, String url) {
+ }
+ });
+ String url=model.getUrl();
+ if(url.contains("?")){
+ url+="&uid="+ IMLoginManager.get(mContext).getUserInfo().getId()+"&token="+IMLoginManager.get(mContext).getUserInfo().getToken();
+ }else{
+ url+="?uid="+ IMLoginManager.get(mContext).getUserInfo().getId()+"&token="+IMLoginManager.get(mContext).getUserInfo().getToken();
+ }
+ mWebView.loadUrl(url);
+ contentLayout.addView(mWebView);
+ }
+
+ private void setImage() {
+ int width = ScreenDimenUtil.getInstance().getScreenWdith();
+ int height = (int) (width * 1.4);
+
+ ImageView mImageView = new ImageView(mContext);
+ mImageView.setLayoutParams(new LinearLayout.LayoutParams(width, height));
mImageView.setOnClickListener(v -> {
WebViewActivity.forward(mContext, model.getUrl(), model.getType() != OpenAdModel.TYPE_HOME);
if (mListener != null) {
@@ -61,10 +134,12 @@ public class OpenAdBottomDialogPopup extends AbsDialogPopupWindow {
}
dismiss();
});
- mClose.setOnClickListener(v -> dismiss());
ImgLoader.display(mContext, model.getImageUrl(), mImageView);
- if (model.getShowTime() > 0) {
- mClose.postDelayed(this::dismiss, model.getShowTime());
- }
+ contentLayout.addView(mImageView);
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) {
+
}
}
diff --git a/common/src/main/java/com/yunbao/common/dialog/OpenAdCenterDialogPopup.java b/common/src/main/java/com/yunbao/common/dialog/OpenAdCenterDialogPopup.java
index d5a0de407..046494ea8 100644
--- a/common/src/main/java/com/yunbao/common/dialog/OpenAdCenterDialogPopup.java
+++ b/common/src/main/java/com/yunbao/common/dialog/OpenAdCenterDialogPopup.java
@@ -1,24 +1,44 @@
package com.yunbao.common.dialog;
+import android.app.Activity;
import android.content.Context;
+import android.graphics.Color;
import android.util.Log;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
+import android.view.WindowInsets;
+import android.webkit.WebResourceRequest;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
import android.widget.ImageView;
+import android.widget.LinearLayout;
import androidx.annotation.NonNull;
-import androidx.constraintlayout.widget.ConstraintLayout;
import com.lxj.xpopup.XPopup;
+import com.lzf.easyfloat.enums.ShowPattern;
import com.yunbao.common.R;
import com.yunbao.common.activity.WebViewActivity;
import com.yunbao.common.bean.OpenAdModel;
+import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.OnItemClickListener;
+import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.DpUtil;
+import com.yunbao.common.utils.JavascriptInterfaceUtils;
+import com.yunbao.common.utils.L;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ScreenDimenUtil;
+import com.yunbao.common.utils.ToastUtil;
+
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
public class OpenAdCenterDialogPopup extends AbsDialogFullScreenPopupWindow {
private ImageView mImageView;
+ private LinearLayout contentLayout;
private ImageView mClose;
private OpenAdModel model;
private OnItemClickListener mListener;
@@ -39,7 +59,8 @@ public class OpenAdCenterDialogPopup extends AbsDialogFullScreenPopupWindow {
@Override
public void buildDialog(XPopup.Builder builder) {
- builder.hasShadowBg(false);
+ builder.hasShadowBg(true);
+ builder.shadowBgColor(Color.parseColor("#80000000"));
builder.animationDuration(0);
}
@@ -61,12 +82,103 @@ public class OpenAdCenterDialogPopup extends AbsDialogFullScreenPopupWindow {
@Override
protected void onCreate() {
super.onCreate();
- Log.e("-----弹窗-----", "onCreate: 创建弹窗" );
- mImageView = findViewById(R.id.img);
+ Log.e("-----弹窗-----", "onCreate: 创建弹窗");
+ contentLayout = findViewById(R.id.content_layout);
mClose = findViewById(R.id.close);
- findViewById(R.id.layout).setOnClickListener(v -> dismiss());
+
+
+ contentLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+ boolean isShow = false;
+
+ @Override
+ public void onGlobalLayout() {
+ if (isShow)
+ return;
+ isShow = true;
+ int width = contentLayout.getWidth() - DpUtil.dp2px(20);
+ int height = (int) (width * 1.5);
+ if (model.getModel() == OpenAdModel.MODEL_SQUARE) {
+ height = (int) (width * 1.2);
+ }
+ Log.i("-----弹窗-----", "高度:" + height + " 宽度:" + width + " 屏幕宽度: " + ScreenDimenUtil.getInstance().getScreenWdith());
+ /*DebugDialog.getInstance(new DebugDialog.DebugDialogRunnable() {
+ @Override
+ public void run(DebugDialog dialog) {
+ dialog.setShowPattern(ShowPattern.ALL_TIME);
+ dialog.show();
+ int width = contentLayout.getWidth() - DpUtil.dp2px(10);
+ int height = (int) (width * 1.5);
+ if (model.getModel() == OpenAdModel.MODEL_SQUARE) {
+ height = (int) (width * 1.2);
+ }
+ Log.i("-----弹窗-----", "弹框debug高宽 高度:" + height + " 宽度:" + width);
+ dialog.setParams(model.getName() + "弹框高宽", "高度:" + height + " 宽度:" + width);
+ }
+ });*/
+ if (model.getPopupSort() == 1) {
+ setImage(model, width, height);
+ findViewById(R.id.layout).setOnClickListener(v -> dismiss());
+ } else {
+ setWeb(model, width, height);
+ }
+ mClose.setOnClickListener(v -> dismiss());
+ if (model.getShowTime() > 0) {
+ mClose.postDelayed(OpenAdCenterDialogPopup.this::dismiss, model.getShowTime());
+ }
+ }
+ });
+
+ }
+
+ private void setWeb(OpenAdModel model, int width, int height) {
+ WebView mWebView = new WebView(mContext);
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width, height);
+ params.gravity = Gravity.CENTER;
+ mWebView.setLayoutParams(params);
+ mWebView.addJavascriptInterface(JavascriptInterfaceUtils.getInstance().setmContext((Activity) mContext, mWebView).setPageClose(true).setLiveZhuangBana(false), "androidObject");
+ mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); // 是否允许JS打开新窗口
+ mWebView.getSettings().setJavaScriptEnabled(true);
+ mWebView.getSettings().setDomStorageEnabled(true);
+ String appCachePath = mContext.getCacheDir().getAbsolutePath();
+// mWebView.getSettings().setAppCachePath(appCachePath);
+ mWebView.getSettings().setAllowFileAccess(true);
+ mWebView.getSettings().setUseWideViewPort(true); // 关键点
+ mWebView.getSettings().setAllowFileAccess(true); // 允许访问文件
+ mWebView.setHorizontalScrollBarEnabled(false);
+ mWebView.setVerticalScrollBarEnabled(false);
+ mWebView.setWebViewClient(new WebViewClient() {
+ @Override
+ public boolean shouldOverrideUrlLoading(WebView view, String url) {
+ L.e("H5-------->" + url);
+ view.loadUrl(url);
+
+ return true;
+ }
+
+ @Override
+ public void onPageFinished(WebView view, String url) {
+ }
+ });
+ String url = model.getUrl();
+ if (url.contains("?")) {
+ url += "&uid=" + IMLoginManager.get(mContext).getUserInfo().getId() + "&token=" + IMLoginManager.get(mContext).getUserInfo().getToken();
+ } else {
+ url += "?uid=" + IMLoginManager.get(mContext).getUserInfo().getId() + "&token=" + IMLoginManager.get(mContext).getUserInfo().getToken();
+ }
+ Log.i("-----弹窗-----", "setWeb: " + url);
+ mWebView.loadUrl(url);
+ contentLayout.addView(mWebView);
+ }
+
+ private void setImage(OpenAdModel model, int width, int height) {
+ mImageView = new ImageView(mContext);
+ mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width, height);
+ params.gravity = Gravity.CENTER;
+ mImageView.setLayoutParams(params);
+
mImageView.setOnClickListener(v -> {
- if("home_page_banner_battle".equals(model.getOriginalUrl())){
+ if ("home_page_banner_battle".equals(model.getOriginalUrl())) {
RouteUtil.forwardBattlePass();
dismiss();
return;
@@ -78,19 +190,12 @@ public class OpenAdCenterDialogPopup extends AbsDialogFullScreenPopupWindow {
}
dismiss();
});
- mClose.setOnClickListener(v -> dismiss());
ImgLoader.display(mContext, model.getImageUrl(), mImageView);
- int width = ScreenDimenUtil.getInstance().getScreenWdith() - DpUtil.dp2px(40);
- int height = (int) (width * 1.4);
- if (model.getModel() == OpenAdModel.MODEL_SQUARE) {
- height = width;
- }
- ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) mImageView.getLayoutParams();
- params.width = width;
- params.height = height;
- mImageView.setLayoutParams(params);
- if (model.getShowTime() > 0) {
- mClose.postDelayed(this::dismiss, model.getShowTime());
- }
+ contentLayout.addView(mImageView);
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) {
+
}
}
diff --git a/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java b/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
index 46242290d..b49247ddd 100644
--- a/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
+++ b/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
@@ -1,25 +1,34 @@
package com.yunbao.common.manager;
+import android.app.Activity;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
+import com.lzf.easyfloat.enums.ShowPattern;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.bean.OpenAdModel;
+import com.yunbao.common.dialog.DebugDialog;
import com.yunbao.common.dialog.OpenAdBottomDialogPopup;
import com.yunbao.common.dialog.OpenAdCenterDialogPopup;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
+import com.yunbao.common.interfaces.OnItemClickListener;
+import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
+import java.lang.ref.WeakReference;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
public class OpenAdManager {
public static final int TYPE_HOME = 1;
@@ -28,19 +37,34 @@ public class OpenAdManager {
private Map showMap;
private List list = null;
private Handler handler = new Handler(Looper.getMainLooper());
- private Map runnableMap = new HashMap<>();
+ private Map runnableMap = new LinkedHashMap<>();
+ private Map waitRunnableMap = new LinkedHashMap<>();//等待运行的弹窗
private int showType;
+ private WeakReference runNowRunnable;
+ private static final boolean IS_QUEUE_SHOW = true;//是否按队列显示弹窗,true就会等待上一个弹窗关闭后弹出,false就按原逻辑顺序直接弹出
private OpenAdManager() {
showMap = new HashMap<>();
init(false);
}
- public void reset() {
+ public void close() {
dismiss();
+ clear();
+ }
+
+ public void clear() {
runnableMap.clear();
showMap.clear();
list.clear();
+ waitRunnableMap.clear();
+ list = null;
+ runNowRunnable = null;
+ }
+
+ public void reset() {
+ Log.i(TAG, "reset: ");
+ next();
}
private static final class MInstanceHolder {
@@ -55,13 +79,14 @@ public class OpenAdManager {
if (list != null && list.isEmpty()) {
return;
}
- Context context = CommonAppContext.getTopActivity();
+ Context context = AppManager.getInstance().getMainActivity();
if (context == null) {
context = CommonAppContext.sInstance;
}
if (context == null) {
return;
}
+
LiveNetManager.get(context).activityPopup(new HttpCallback>() {
@Override
public void onSuccess(List data) {
@@ -70,35 +95,64 @@ public class OpenAdManager {
list = new ArrayList<>();
return;
}
+ Collections.sort(data, new AdListComparator());
list = data;
if (isShow) {
- show(TYPE_HOME, false);
+ if (showType == 0) {
+ show(TYPE_HOME, false);
+ } else {
+ show(showType, false);
+ }
}
}
@Override
public void onError(String error) {
- System.err.println("弹框列表:" + error);
+ Log.e(TAG, "弹框列表:" + error);
}
});
}
- private static long showTime=0;
+ private static long showTime = 0;
+ private OnItemClickListener onItemClickListener=new OnItemClickListener() {
+ @Override
+ public void onItemClick(String bean, int position) {
+
+ }
+ };
+
public synchronized void show(int type, boolean isGuard) {
+ showType = type;
if (list == null) {
init(true);
return;
}
- if(System.currentTimeMillis()-showTime<100){
+ Log.i(TAG, "show: 调用显示 " + type + " " + isGuard);
+ if (System.currentTimeMillis() - showTime < 100) {
return;
}
- showTime=System.currentTimeMillis();
- showType = type;
+ /*DebugDialog.getInstance(new DebugDialog.DebugDialogRunnable() {
+ @Override
+ public void run(DebugDialog dialog) {
+ dialog.setShowPattern(ShowPattern.ALL_TIME);
+ dialog.show();
+ onItemClickListener = new OnItemClickListener() {
+ @Override
+ public void onItemClick(String bean, int position) {
+ dialog.setParams(bean, "剩余:" + position);
+ }
+ };
+ }
+ });*/
+ showTime = System.currentTimeMillis();
+ waitRunnableMap.clear();
+ runnableMap.clear();
+ runNowRunnable = null;
for (OpenAdModel model : list) {
if (model.getType() == type) {
- if (type == OpenAdModel.TYPE_LIVE && !model.userIsPermission(isGuard)) {
+ /* if (type == OpenAdModel.TYPE_LIVE && !model.userIsPermission(isGuard)) {
continue;
- }
+ }*/
if (model.getShowModel() == OpenAdModel.SHOW_ONE) {
if (SpUtil.getInstance().getBooleanValue("open_ad_popup_" + model.getId())) {
continue;
@@ -122,13 +176,22 @@ public class OpenAdManager {
if (!isShow(model)) {
Log.i(TAG, "show: " + model);
- handler.postDelayed(new AdRunnable(model), model.getDelayShowTime());
+ if (IS_QUEUE_SHOW) {
+ waitRunnableMap.put(new AdRunnable(model), model.getDelayShowTime());
+ } else {
+ handler.postDelayed(new AdRunnable(model), model.getDelayShowTime());
+ }
} else {
Log.i(TAG, "notshow: " + model);
}
}
}
+ Log.i(TAG, "show: 循环完毕,调用next");
+ if (IS_QUEUE_SHOW) {
+ onItemClickListener.onItemClick("接口返回需要展示的弹窗数:", waitRunnableMap.size());
+ next();
+ }
Log.i(TAG, "------------------------------");
}
@@ -144,6 +207,9 @@ public class OpenAdManager {
}
}
runnableMap.clear();
+ if (runNowRunnable != null && runNowRunnable.get() != null) {
+ handler.removeCallbacks(runNowRunnable.get());
+ }
}
private synchronized boolean isShow(OpenAdModel type) {
@@ -153,11 +219,45 @@ public class OpenAdManager {
return false;
}
+ int getNowType() {
+ Activity lastActivity = AppManager.getInstance().getLastActivity();
+ if (lastActivity == null) {
+ return -1;
+ }
+ if (AppManager.getInstance().isLiveActivity()) {
+ return TYPE_LIVE;
+ } else if (AppManager.getInstance().isMainActivity()) {
+ return TYPE_HOME;
+ }
+ return -2;
+ }
+
+ void next() {
+ Log.i(TAG, "next: 剩余数" + waitRunnableMap.size());
+ if (waitRunnableMap.isEmpty()) return;
+ for (AdRunnable next : waitRunnableMap.keySet()) {
+ Log.i(TAG, "next: " + next.model);
+ if (next.model.getType() == getNowType()) {
+ Integer i = waitRunnableMap.get(next);
+ if (i == null) {
+ i = 0;
+ }
+ onItemClickListener.onItemClick("当前加载id:" + next.model.getId() + " " + next.model.getName() + " 延迟展示时间:" + i, (waitRunnableMap.size() - 1));
+ handler.postDelayed(next, i);
+ return;
+ }
+ }
+
+ }
+
private class AdRunnable implements Runnable {
OpenAdModel model;
+ AdRunnable runnable;
public AdRunnable(OpenAdModel model) {
this.model = model;
+ this.runnable = this;
+ runNowRunnable = new WeakReference<>(this);
runnableMap.put(model.getId(), this);
}
@@ -170,36 +270,100 @@ public class OpenAdManager {
Log.i(TAG, "run: " + model);
if (model == null) {
ToastUtil.showDebug("model为空");
+ if (onItemClickListener != null) {
+ onItemClickListener.onItemClick("", -2);
+ }
return;
}
if (!model.isInTime()) {
ToastUtil.showDebug("不在展示时间内:" + model.getStartTime() + "|" + model.getEndTime());
+ if (onItemClickListener != null) {
+ onItemClickListener.onItemClick("", -2);
+ }
return;
}
if (isShow(model)) {
ToastUtil.showDebug(model.getId() + "|model展示过了");
+ if (onItemClickListener != null) {
+ onItemClickListener.onItemClick("", -2);
+ }
return;
}
if (model.getType() != showType) {
+ if (onItemClickListener != null) {
+ onItemClickListener.onItemClick("", -2);
+ }
return;
}
- if(isShow(model)){
- Log.i(TAG,"展示过:"+model);
+ if (isShow(model)) {
+ Log.i(TAG, "展示过:" + model);
+ if (onItemClickListener != null) {
+ onItemClickListener.onItemClick("", -2);
+ }
return;
}
+ if (model.getType() == OpenAdModel.TYPE_HOME && !AppManager.getInstance().isMainActivity()) {
+ Log.i(TAG, "首页类型弹窗,但当前不是首页");
+ if (onItemClickListener != null) {
+ onItemClickListener.onItemClick("", -2);
+ }
+ dismiss();
+ return;
+ }
+ if (model.getType() == TYPE_LIVE && !AppManager.getInstance().isLiveActivity()) {
+ Log.i(TAG, "直播类型弹窗,但当前不是直播");
+ if (onItemClickListener != null) {
+ onItemClickListener.onItemClick("", -2);
+ }
+ dismiss();
+ return;
+ }
+
showMap.put(model.getId(), true);
if (model.getShowModel() == OpenAdModel.SHOW_DIY) {
- String nextTime= String.valueOf(System.currentTimeMillis() + (Long.parseLong(model.getSection()) * 60 * 1000));
+ String nextTime = String.valueOf(System.currentTimeMillis() + (Long.parseLong(model.getSection()) * 60 * 1000));
SpUtil.setStringValue("open_ad_popup_time_" + model.getId(), nextTime);
showMap.remove(model.getId());
}
if (model.getModel() == OpenAdModel.MODEL_BOTTOM) {
- new OpenAdBottomDialogPopup(CommonAppContext.getTopActivity(), model).setListener((bean, position) -> {
+ new OpenAdBottomDialogPopup(AppManager.getInstance().getLastActivity(), model).setListener((bean, position) -> {
+ Log.i(TAG, "run: 弹框回调:" + position + " id = " + model.getId());
+ if (IS_QUEUE_SHOW) {
+ removeList(bean);
+ if (position == 0) {
+ next();
+ }
+ }
}).showDialog();
} else {
- new OpenAdCenterDialogPopup(CommonAppContext.getTopActivity(), model).setListener((bean, position) -> {
+ new OpenAdCenterDialogPopup(AppManager.getInstance().getLastActivity(), model).setListener((bean, position) -> {
+ Log.i(TAG, "run: 弹框回调:" + position + " id = " + model.getId());
+ if (IS_QUEUE_SHOW) {
+ removeList(bean);
+ if (position == 0) {
+ next();
+ }
+ }
}).showDialog();
}
}
+
+ void removeList(OpenAdModel model) {
+ Log.i(TAG, "removeList: " + model);
+ for (AdRunnable next : waitRunnableMap.keySet()) {
+ if (next.model.getId() == model.getId()) {
+ waitRunnableMap.remove(next);
+ return;
+ }
+ }
+ }
+ }
+
+ private class AdListComparator implements Comparator {
+
+ @Override
+ public int compare(OpenAdModel openAdModel, OpenAdModel t1) {
+ return openAdModel.getSort() - t1.getSort();
+ }
}
}
diff --git a/common/src/main/java/com/yunbao/common/utils/AppManager.java b/common/src/main/java/com/yunbao/common/utils/AppManager.java
index f27c2815a..33c5c65c4 100644
--- a/common/src/main/java/com/yunbao/common/utils/AppManager.java
+++ b/common/src/main/java/com/yunbao/common/utils/AppManager.java
@@ -1,8 +1,10 @@
package com.yunbao.common.utils;
import android.app.Activity;
+import android.util.Log;
import com.yunbao.common.BuildConfig;
+import com.yunbao.common.manager.OpenAdManager;
import java.util.Stack;
@@ -11,7 +13,7 @@ public class AppManager {
private static Stack activityStack;
public AppManager() {
- activityStack=new Stack<>();
+ activityStack = new Stack<>();
}
/**
@@ -36,18 +38,40 @@ public class AppManager {
return activity;
}
}
- return null;
+ return getLastActivity();
}
public Activity getLiveActivity() {
for (Activity activity : activityStack) {
- if (activity.getClass().getSimpleName().contains("LiveAudienceActivity")) {
+ if (activity.getClass().getSimpleName().contains("LiveActivity")) {
return activity;
}
}
return null;
}
+ public void clear() {
+ activityStack.clear();
+ OpenAdManager.getInstance().clear();
+ }
+
+ public boolean isMainActivity() {
+ Activity lastActivity = getLastActivity();
+ if (lastActivity == null) {
+ return false;
+ }
+ return lastActivity.getClass().getSimpleName().contains("MainActivity");
+ }
+
+ //TODO 首页类型没展示完进直播间会不展示直播间的。
+ public boolean isLiveActivity() {
+ Activity lastActivity = getLastActivity();
+ if (lastActivity == null) {
+ return false;
+ }
+ return lastActivity.getClass().getSimpleName().contains("LiveAudienceActivity");
+ }
+
public static class SingleApp {
public static AppManager INSTANCE = new AppManager();
}
@@ -59,6 +83,10 @@ public class AppManager {
if (activityStack == null) {
activityStack = new Stack();
}
+ //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>class com.yunbao.main.activity.MsgAddressBookActivity
+ if (getActivity(activity.getClass()) != null) {
+ activityStack.remove(getActivity(activity.getClass()));
+ }
activityStack.add(activity);
}
diff --git a/common/src/main/java/com/yunbao/common/views/APKUpdateCustomPopup.java b/common/src/main/java/com/yunbao/common/views/APKUpdateCustomPopup.java
index f860e2203..7747bfa9b 100644
--- a/common/src/main/java/com/yunbao/common/views/APKUpdateCustomPopup.java
+++ b/common/src/main/java/com/yunbao/common/views/APKUpdateCustomPopup.java
@@ -2,6 +2,7 @@ package com.yunbao.common.views;
import android.app.Activity;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
@@ -44,6 +45,7 @@ public class APKUpdateCustomPopup extends CenterPopupView {
private ProgressBar progressBar;
private Activity mContext;
private boolean mInside;
+ private DialogInterface.OnDismissListener onDismissListener;
public APKUpdateCustomPopup(@NonNull Activity context, boolean inside) {
super(context);
@@ -57,6 +59,11 @@ public class APKUpdateCustomPopup extends CenterPopupView {
return R.layout.apk_update_custom_popup;
}
+ public APKUpdateCustomPopup setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {
+ this.onDismissListener = onDismissListener;
+ return this;
+ }
+
// 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑
@Override
protected void onCreate() {
@@ -69,6 +76,14 @@ public class APKUpdateCustomPopup extends CenterPopupView {
}
+ @Override
+ protected void onDismiss() {
+ super.onDismiss();
+ if (onDismissListener != null) {
+ onDismissListener.onDismiss(null);
+ }
+ }
+
private void initView() {
if (!mInside) {
if (CommonAppConfig.IS_GOOGLE_PLAY == 0 && APKManager.get().getAPKGoogleIsUp() == 1) {
diff --git a/common/src/main/res/layout/dialog_open_bottom_ad.xml b/common/src/main/res/layout/dialog_open_bottom_ad.xml
index 192f2d295..07cbd6f4f 100644
--- a/common/src/main/res/layout/dialog_open_bottom_ad.xml
+++ b/common/src/main/res/layout/dialog_open_bottom_ad.xml
@@ -5,16 +5,19 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
-
+ app:srcCompat="@mipmap/background_gift_wall">
+
+
+
+
diff --git a/common/src/main/res/layout/dialog_open_center_ad.xml b/common/src/main/res/layout/dialog_open_center_ad.xml
index dd60e83a6..8e078bb5d 100644
--- a/common/src/main/res/layout/dialog_open_center_ad.xml
+++ b/common/src/main/res/layout/dialog_open_center_ad.xml
@@ -6,26 +6,28 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
+
+
+
\ No newline at end of file
diff --git a/config.gradle b/config.gradle
index 14d48a2a1..dc8bef34b 100644
--- a/config.gradle
+++ b/config.gradle
@@ -4,15 +4,17 @@ ext {
buildToolsVersion: "29.0.2",
minSdkVersion : 21,
targetSdkVersion : 33,
- versionCode : 473,
- versionName : "6.6.8"
+ versionCode : 474,
+ versionName : "6.7.8"
]
manifestPlaceholders = [
//正式、
-// serverHost : "https://napi.yaoulive.com",
+ //serverHost : "https://napi.yaoulive.com",
// 测试
serverHost : "https://ceshi.yaoulive.com",
+ buildTime : new Date().format("MM-dd HH:mm", TimeZone.getTimeZone("GMT+8")),
+
//百度语音识别
baiduAppId : "23774720",
@@ -21,10 +23,10 @@ ext {
baiduAppSecretKey: "nEVSgmuGpU0pjPr6VleEGGAl0hzGW52S",
// true表示谷歌支付 false 0 链接包 1 谷歌包 2华为包 3 samsung包
- isGooglePlay : 0,
+ isGooglePlay : 1,
//是否上报异常日志
isUploadLog : true,
//是否打包成插件包模式
- isPluginModel : true,
+ isPluginModel : false,
]
}
diff --git a/gradle.properties b/gradle.properties
index 64e5acf4c..f8c588910 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -21,10 +21,10 @@ org.gradle.configureondemand=true
android.useAndroidX=true
android.enableJetifier=true
-#systemProp.http.proxyHost=127.0.0.1
-#systemProp.https.proxyHost=127.0.0.1
-#systemProp.https.proxyPort=10809
-#systemProp.http.proxyPort=10809
+systemProp.http.proxyHost=127.0.0.1
+systemProp.https.proxyHost=127.0.0.1
+systemProp.https.proxyPort=10809
+systemProp.http.proxyPort=10809
#android.enableR8.fullMode=true
\ No newline at end of file
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 7f4226ec7..b0fb6b6ec 100644
--- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
+++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
@@ -15,6 +15,7 @@ import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
@@ -27,8 +28,10 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.GsonUtils;
import com.lzf.easyfloat.EasyFloat;
+import com.lzf.easyfloat.enums.ShowPattern;
import com.lzf.easyfloat.permission.PermissionUtils;
import com.lzf.easyfloat.utils.LifecycleUtils;
+import com.yunbao.common.dialog.DebugDialog;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
@@ -115,6 +118,7 @@ import com.yunbao.live.socket.SocketSwChatUtil;
import com.yunbao.live.socket.SocketSwClient;
import com.yunbao.live.socket.SocketSendBean;
import com.yunbao.live.utils.LiveImDeletUtil;
+import com.yunbao.live.utils.LiveTextRender;
import org.greenrobot.eventbus.EventBus;
@@ -333,6 +337,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
loading.setVisibility(View.GONE);
enterRoomLeaveHandler.post(enterRoomLeaveRunnable);
OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE, LiveGuardInfo.isGuard(mLiveGuardInfo));
+
}
};
final Runnable loadTimeoutRunnableGone = new Runnable() {
@@ -341,6 +346,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
loading.setVisibility(View.GONE);
enterRoomLeaveHandler.post(enterRoomLeaveRunnable);
//ToastUtil.show(mContext.getString(R.string.net_error) + " :500");//异常下播,等待加载时间过了后弹出
+ OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE, LiveGuardInfo.isGuard(mLiveGuardInfo));
}
};
diff --git a/main/src/main/java/com/yunbao/main/activity/MainActivity.java b/main/src/main/java/com/yunbao/main/activity/MainActivity.java
index e713a8fc0..25f7664a3 100644
--- a/main/src/main/java/com/yunbao/main/activity/MainActivity.java
+++ b/main/src/main/java/com/yunbao/main/activity/MainActivity.java
@@ -12,6 +12,7 @@ import android.app.NotificationChannel;
import android.app.PendingIntent;
import android.content.ClipData;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
@@ -224,7 +225,6 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
SWAuManager.get().initRtcEngine(this);
ActivityCompat.postponeEnterTransition(this);
ConversationIMListManager.get(this);
- OpenAdManager.getInstance();
//在请求一下这个接口给我后台版本号
CommonHttpUtil.getConfig(mContext, new CommonCallback() {
@Override
@@ -363,6 +363,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
}
break;
}
+ OpenAdManager.getInstance().show(OpenAdManager.TYPE_HOME, false);
if (mTabButtonGroup.getCurPosition() != position) {
System.err.println("重连IM:" + IMLoginManager.isLogin(mContext));
if (!IMLoginManager.isLogin(mContext)) {
@@ -845,7 +846,15 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
if (!APKManager.get().getApkVerNew()) {
new XPopup.Builder(mContext).isDestroyOnDismiss(true).dismissOnBackPressed(false) // 按返回键是否关闭弹窗,默认为true
.dismissOnTouchOutside(false) // 点击外部是否关闭弹窗,默认为true
- .asCustom(new APKUpdateCustomPopup(mContext, false)).show();
+ .asCustom(
+ new APKUpdateCustomPopup(mContext, false)
+ .setOnDismissListener(new DialogInterface.OnDismissListener() {
+ @Override
+ public void onDismiss(DialogInterface dialogInterface) {
+ requestBonus();
+ }
+ })
+ ).show();
}
} else {
requestBonus();
@@ -855,6 +864,10 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
});
}
+ private void initAdOpenWindows() {
+ OpenAdManager.getInstance().show(OpenAdManager.TYPE_HOME, false);
+ }
+
/**
* 填写邀请码
*/
@@ -885,14 +898,21 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
* 签到奖励
*/
SigninDialog fragment;
+ boolean isRequestBonus = false;
private void requestBonus() {
fragment = new SigninDialog();
MainHttpUtil.requestNewBonus(new HttpCallback() {
@Override
- public void onSuccess(int code, String msg, String[] info) {
+ public void onError() {
+ super.onError();
+ isRequestBonus = true;
+ }
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ isRequestBonus = true;
if (info.length > 0) {
JSONObject obj = JSON.parseObject(info[0]);
if (code == 0) {
@@ -901,14 +921,24 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
bundle.putString("send_exp", obj.getString("send_exp"));
bundle.putString("sign_day", obj.getString("sign_day"));
fragment.setArguments(bundle);
+ fragment.setOnDismissListener(new DialogInterface.OnDismissListener() {
+ @Override
+ public void onDismiss(DialogInterface dialogInterface) {
+ initAdOpenWindows();
+ }
+ });
if (!getSupportFragmentManager().isStateSaved()) {
fragment.show(getSupportFragmentManager(), "SigninDialog");
}
+ } else {
+ initAdOpenWindows();
}
if (obj != null && obj.containsKey("msg_zdy_send") && obj.containsKey("msg_zdy_send_text")) {
Log.e("MainActivity333", info[0]);
NoviceInstructorManager.get(mContext).getNetNoviceInstructor(info[0]);
}
+ } else {
+ initAdOpenWindows();
}
}
});
@@ -942,6 +972,9 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
NoviceInstructorManager.get(mContext).getNoviceInstructor();
NoviceInstructorManager.get(mContext).checktHomeZdyPop();
initAnchorRecommendBanner();
+ if (isRequestBonus) {
+ initAdOpenWindows();
+ }
}
/**
@@ -1140,7 +1173,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
if (EasyFloat.isShow("LiveFloatView")) {
EasyFloat.dismiss("LiveFloatView", true);
}
- OpenAdManager.getInstance().reset();
+ OpenAdManager.getInstance().close();
super.onBackPressed();
}
}
diff --git a/main/src/main/java/com/yunbao/main/dialog/SigninDialog.java b/main/src/main/java/com/yunbao/main/dialog/SigninDialog.java
index 219ede7e6..85c3969fb 100644
--- a/main/src/main/java/com/yunbao/main/dialog/SigninDialog.java
+++ b/main/src/main/java/com/yunbao/main/dialog/SigninDialog.java
@@ -3,6 +3,7 @@ package com.yunbao.main.dialog;
import static com.yunbao.common.utils.RouteUtil.PATH_REWARD;
import android.annotation.SuppressLint;
+import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
@@ -20,12 +21,18 @@ import com.yunbao.main.R;
public class SigninDialog extends AbsDialogFragment {
TextView gold, sign_day;
+ private DialogInterface.OnDismissListener onDismissListener;
@Override
protected int getLayoutId() {
return R.layout.signin_dialog;
}
+ public SigninDialog setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {
+ this.onDismissListener = onDismissListener;
+ return this;
+ }
+
@Override
protected int getDialogStyle() {
return R.style.dialog;
@@ -58,7 +65,7 @@ public class SigninDialog extends AbsDialogFragment {
goto_sign.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- ARouter.getInstance().build(PATH_REWARD).withString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=task&a=index" + "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken()+ "&isZh=" + (WordUtil.isNewZh() ? "1" : "0")).navigation();
+ ARouter.getInstance().build(PATH_REWARD).withString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=task&a=index" + "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0")).navigation();
dismiss();
}
@@ -79,4 +86,12 @@ public class SigninDialog extends AbsDialogFragment {
sign_day.setText(String.format(getString(R.string.this_month), bundle.getString("sign_day")));
}
+
+ @Override
+ public void onDismiss(DialogInterface dialog) {
+ super.onDismiss(dialog);
+ if (onDismissListener != null) {
+ onDismissListener.onDismiss(dialog);
+ }
+ }
}
diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeLiveViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeLiveViewHolder.java
index 2301f50be..a4f390768 100644
--- a/main/src/main/java/com/yunbao/main/views/MainHomeLiveViewHolder.java
+++ b/main/src/main/java/com/yunbao/main/views/MainHomeLiveViewHolder.java
@@ -567,7 +567,6 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
@Override
public void onResume() {
super.onResume();
- OpenAdManager.getInstance().show(OpenAdManager.TYPE_HOME, false);
}
@Override