Commit 301795f2 authored by mengcuiguang2's avatar mengcuiguang2

Merge branch 'dev_new_inout' into dev_gro3

parents 2ac3e0d7 a1da9184
......@@ -213,6 +213,11 @@ dependencies {
implementation 'com.hjq:toast:8.8'
// 附件下载更新
implementation 'com.mindorks.android:prdownloader:0.6.0'
// 检测运行设备是否模拟器
implementation 'com.snail:antifake:1.4'
// 数美
implementation files('libs/smantifraud.aar')
// 工具类
// gson
......@@ -238,14 +243,14 @@ dependencies {
// 穿山甲 GroMore
// mediation_ad_sdk
implementation(name: 'mediation_ad_sdk_3.1.0.1', ext: 'aar')
implementation(name: 'gdt_adapter_4.422.1292.0', ext: 'aar')
implementation(name: 'ks_adapter_3.3.17.1', ext: 'aar')
implementation(name: 'pangle_adapter_4.0.1.9.1', ext: 'aar')
implementation(name: 'mediation_ad_sdk_3.2.0.0', ext: 'aar')
implementation(name: 'gdt_adapter_4.430.1300.2', ext: 'aar')
implementation(name: 'ks_adapter_3.3.17.3', ext: 'aar')
implementation(name: 'pangle_adapter_4.1.0.2.2', ext: 'aar')
// 穿山甲广告
implementation(name: 'open_ad_sdk_4.0.1.9', ext: 'aar')
implementation(name: 'open_ad_sdk_4.1.0.2', ext: 'aar')
// 广点通广告 腾讯
implementation(name: 'GDTSDK.unionNormal.4.422.1292', ext: 'aar')
implementation(name: 'GDTSDK.unionNormal.4.430.1300', ext: 'aar')
// 快手
implementation(name: 'kssdk-ad-3.3.17', ext: 'aar')
// talkingdata已集成
......
......@@ -144,6 +144,12 @@
android:name="com.mints.fiveworld.ui.activitys.NetTestingActivity"
android:excludeFromRecents="true"
android:screenOrientation="portrait" />
<activity
android:name="com.mints.fiveworld.ui.activitys.HintActivity"
android:excludeFromRecents="true"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/OutTransparentTheme"/>
<activity
android:name="com.mints.fiveworld.ui.activitys.SignalStrengthActivity"
android:excludeFromRecents="true"
......@@ -221,6 +227,30 @@
android:launchMode="singleTask"
android:taskAffinity="com.a.b.c.t7"
android:theme="@style/OutTransparentTheme" />
<activity
android:name="com.mints.fiveworld.ui.activitys.keepalive.BoostFast2Activity"
android:excludeFromRecents="true"
android:launchMode="singleTask"
android:taskAffinity="com.a.b.c.t9"
android:theme="@style/OutTransparentTheme" />
<activity
android:name="com.mints.fiveworld.ui.activitys.keepalive.BoostHomeActivity"
android:excludeFromRecents="true"
android:launchMode="singleTask"
android:taskAffinity="com.a.b.c.t10"
android:theme="@style/OutTransparentTheme" />
<activity
android:name=".ui.activitys.keepalive.HomeTempTransparentActivity"
android:excludeFromRecents="true"
android:launchMode="singleTask"
android:taskAffinity="com.a.b.c.t12"
android:theme="@style/OutTransparentTheme" />
<activity
android:name=".ui.activitys.keepalive.TranHomeActivity"
android:excludeFromRecents="true"
android:launchMode="singleTask"
android:taskAffinity="com.a.b.c.t11"
android:theme="@style/OutTransparentTheme" />
<activity
android:name="com.mints.mingce.world.widget.WorldActivity"
......
......@@ -240,6 +240,7 @@ public class MintsApplication extends BaseApp {
ForegroundOrBackground.resetAppOutCount();
WifiAdManager.Companion.getInstance().resetAdLoadOk();
AppOutWifiAdManager.Companion.getInstance().resetAdLoadOk();
LogUtil.d(TAG, "HomeKeyWatch home键");
}
@Override
......@@ -248,6 +249,7 @@ public class MintsApplication extends BaseApp {
WifiAdManager.Companion.getInstance().resetAdLoadOk();
AppOutWifiAdManager.Companion.getInstance().resetAdLoadOk();
LogUtil.d(TAG, "HomeKeyWatch home列表");
HomePopManager.getInstance().startUserHomePop();
}
});
......
......@@ -3,7 +3,10 @@ package com.mints.fiveworld.ad.full;
import android.app.Activity;
import android.util.Log;
import androidx.annotation.NonNull;
import com.bytedance.msdk.api.AdError;
import com.bytedance.msdk.api.reward.RewardItem;
import com.bytedance.msdk.api.v2.GMAdConstant;
import com.bytedance.msdk.api.v2.GMMediationAdSdk;
import com.bytedance.msdk.api.v2.GMSettingConfigCallback;
......@@ -408,6 +411,11 @@ public class InSceneFull {
public void onSkippedVideo() {
Log.d(TAG, "onSkippedVideo"+ TimeRender.getDate());
}
@Override
public void onRewardVerify(@NonNull RewardItem rewardItem) {
}
};
private String getInner() {
......
......@@ -3,7 +3,10 @@ package com.mints.fiveworld.ad.full;
import android.app.Activity;
import android.util.Log;
import androidx.annotation.NonNull;
import com.bytedance.msdk.api.AdError;
import com.bytedance.msdk.api.reward.RewardItem;
import com.bytedance.msdk.api.v2.GMAdConstant;
import com.bytedance.msdk.api.v2.GMMediationAdSdk;
import com.bytedance.msdk.api.v2.GMSettingConfigCallback;
......@@ -459,6 +462,11 @@ public class Notice_OutSceneFull {
// UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_SCENE_AD_SKIP.name());
}
@Override
public void onRewardVerify(@NonNull RewardItem rewardItem) {
}
};
private String getInner() {
......
......@@ -5,7 +5,10 @@ import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import com.bytedance.msdk.api.AdError;
import com.bytedance.msdk.api.reward.RewardItem;
import com.bytedance.msdk.api.v2.GMAdConstant;
import com.bytedance.msdk.api.v2.GMMediationAdSdk;
import com.bytedance.msdk.api.v2.GMSettingConfigCallback;
......@@ -18,6 +21,7 @@ import com.mints.fiveworld.ad.AdReportManager;
import com.mints.fiveworld.ad.wifi.WifiAdManager;
import com.mints.fiveworld.ad.wifi.WifiAdStatusListener;
import com.mints.fiveworld.common.Constant;
import com.mints.fiveworld.keepalive.AlarmManager;
import com.mints.fiveworld.keepalive.OutAppRouter;
import com.mints.fiveworld.manager.UmengManager;
import com.mints.fiveworld.manager.ad.CsjGroMoreManager;
......@@ -141,6 +145,7 @@ public class OutSceneFull {
@Override
public void onFullVideoLoadFail(AdError adError) {
AlarmManager.getInstance().closeAlarming();
LogUtil.d(TAG, "gromore体外场景全屏广告--> 3、onFullVideoLoadFail onError " + adError.code + adError.message);
AdReportManager.INSTANCE.eventFull(
......@@ -163,6 +168,8 @@ public class OutSceneFull {
@Override
public void onFullVideoAdLoad() {
AlarmManager.getInstance().closeAlarming();
LogUtil.d(TAG, "gromore体外场景全屏广告--> 3、Gromore 新插屏onFullVideoAdLoad ");
if (mTTFullVideoAd != null) {
......@@ -194,7 +201,7 @@ public class OutSceneFull {
"体外广告播放时,预加载广告加载完成,但当前体外场景流程未走完,防止重复弹出")) {
// TODO 返回
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_NEW_LISTENER_SUC_RETURN.name());
return;
// return;
}
WifiAdManager.Companion.getInstance().routeToActivity(mCarrier, mRouteType, mBundle);
......@@ -405,6 +412,11 @@ public class OutSceneFull {
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_SCENE_AD_SKIP.name());
}
@Override
public void onRewardVerify(@NonNull RewardItem rewardItem) {
}
};
private String getInner() {
......
......@@ -3,7 +3,10 @@ package com.mints.fiveworld.ad.full;
import android.app.Activity;
import android.util.Log;
import androidx.annotation.NonNull;
import com.bytedance.msdk.api.AdError;
import com.bytedance.msdk.api.reward.RewardItem;
import com.bytedance.msdk.api.v2.GMAdConstant;
import com.bytedance.msdk.api.v2.GMMediationAdSdk;
import com.bytedance.msdk.api.v2.GMSettingConfigCallback;
......@@ -16,6 +19,7 @@ import com.mints.fiveworld.ad.AdReportManager;
import com.mints.fiveworld.ad.wifi.AppOutWifiAdManager;
import com.mints.fiveworld.ad.wifi.WifiAdStatusListener;
import com.mints.fiveworld.common.Constant;
import com.mints.fiveworld.keepalive.AlarmManager;
import com.mints.fiveworld.keepalive.OutAppRouter;
import com.mints.fiveworld.manager.UmengManager;
import com.mints.fiveworld.manager.ad.CsjGroMoreManager;
......@@ -132,6 +136,7 @@ public class OutTimeFull {
@Override
public void onFullVideoLoadFail(AdError adError) {
AlarmManager.getInstance().closeAlarming();
LogUtil.d(TAG, "gromore体外定时全屏广告--> 3、onFullVideoLoadFail onError " + adError.code + adError.message);
AdReportManager.INSTANCE.eventFull(
......@@ -160,6 +165,8 @@ public class OutTimeFull {
@Override
public void onFullVideoAdLoad() {
AlarmManager.getInstance().closeAlarming();
LogUtil.d(TAG, "gromore体外定时全屏广告--> 3、Gromore 新插屏onFullVideoAdLoad ");
if (mTTFullVideoAd != null) {
adcode = mTTFullVideoAd.getAdNetworkRitId();
......@@ -191,7 +198,7 @@ public class OutTimeFull {
"体外广告播放时,预加载广告加载完成,但当前体外场景流程未走完,防止重复弹出")) {
// TODO 拦截
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_TIME10_NEW_CSJ_CACHE_SUC_RETURN.name());
return;
// return;
}
AppOutWifiAdManager.Companion.getInstance().routeToTime();
......@@ -407,6 +414,11 @@ public class OutTimeFull {
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TIME10_AD_SKIP.name());
}
@Override
public void onRewardVerify(@NonNull RewardItem rewardItem) {
}
};
private String getInner() {
......
......@@ -3,7 +3,10 @@ package com.mints.fiveworld.ad.half;
import android.app.Activity;
import android.util.Log;
import androidx.annotation.NonNull;
import com.bytedance.msdk.api.AdError;
import com.bytedance.msdk.api.reward.RewardItem;
import com.bytedance.msdk.api.v2.GMAdConstant;
import com.bytedance.msdk.api.v2.GMMediationAdSdk;
import com.bytedance.msdk.api.v2.GMSettingConfigCallback;
......@@ -401,6 +404,11 @@ public class NewInSceneFull {
public void onSkippedVideo() {
Log.d(TAG, "onSkippedVideo");
}
@Override
public void onRewardVerify(@NonNull RewardItem rewardItem) {
}
};
private String getInner() {
......
......@@ -5,7 +5,10 @@ import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import com.bytedance.msdk.api.AdError;
import com.bytedance.msdk.api.reward.RewardItem;
import com.bytedance.msdk.api.v2.GMAdConstant;
import com.bytedance.msdk.api.v2.GMMediationAdSdk;
import com.bytedance.msdk.api.v2.GMSettingConfigCallback;
......@@ -18,6 +21,7 @@ import com.mints.fiveworld.ad.AdReportManager;
import com.mints.fiveworld.ad.wifi.WifiAdManager;
import com.mints.fiveworld.ad.wifi.WifiAdStatusListener;
import com.mints.fiveworld.common.Constant;
import com.mints.fiveworld.keepalive.AlarmManager;
import com.mints.fiveworld.keepalive.OutAppRouter;
import com.mints.fiveworld.manager.TrackManager;
import com.mints.fiveworld.manager.UmengManager;
......@@ -141,6 +145,7 @@ public class NewOutSceneFull {
@Override
public void onFullVideoLoadFail(AdError adError) {
AlarmManager.getInstance().closeAlarming();
LogUtil.d(TAG, "gromore体外场景全屏广告--> 3、onFullVideoLoadFail onError " + adError.code + adError.message);
AdReportManager.INSTANCE.eventFull(
......@@ -163,6 +168,8 @@ public class NewOutSceneFull {
@Override
public void onFullVideoAdLoad() {
AlarmManager.getInstance().closeAlarming();
LogUtil.d(TAG, "gromore体外场景全屏广告--> 3、Gromore 新插屏onFullVideoAdLoad ");
if (mTTFullVideoAd != null) {
......@@ -194,7 +201,7 @@ public class NewOutSceneFull {
"体外广告播放时,预加载广告加载完成,但当前体外场景流程未走完,防止重复弹出")) {
// TODO 返回
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_NEW_LISTENER_SUC_RETURN.name());
return;
// return;
}
WifiAdManager.Companion.getInstance().routeToActivity(mCarrier, mRouteType, mBundle);
......@@ -405,6 +412,11 @@ public class NewOutSceneFull {
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_SCENE_AD_SKIP.name());
}
@Override
public void onRewardVerify(@NonNull RewardItem rewardItem) {
}
};
private String getInner() {
......
......@@ -3,7 +3,10 @@ package com.mints.fiveworld.ad.half;
import android.app.Activity;
import android.util.Log;
import androidx.annotation.NonNull;
import com.bytedance.msdk.api.AdError;
import com.bytedance.msdk.api.reward.RewardItem;
import com.bytedance.msdk.api.v2.GMAdConstant;
import com.bytedance.msdk.api.v2.GMMediationAdSdk;
import com.bytedance.msdk.api.v2.GMSettingConfigCallback;
......@@ -16,6 +19,7 @@ import com.mints.fiveworld.ad.AdReportManager;
import com.mints.fiveworld.ad.wifi.AppOutWifiAdManager;
import com.mints.fiveworld.ad.wifi.WifiAdStatusListener;
import com.mints.fiveworld.common.Constant;
import com.mints.fiveworld.keepalive.AlarmManager;
import com.mints.fiveworld.manager.TrackManager;
import com.mints.fiveworld.manager.UmengManager;
import com.mints.fiveworld.manager.UserManager;
......@@ -130,6 +134,7 @@ public class NewOutTimeFull {
@Override
public void onFullVideoLoadFail(AdError adError) {
AlarmManager.getInstance().closeAlarming();
LogUtil.d(TAG, "gromore体外定时全屏广告--> 3、onFullVideoLoadFail onError " + adError.code + adError.message);
AdReportManager.INSTANCE.eventFull(
......@@ -158,6 +163,8 @@ public class NewOutTimeFull {
@Override
public void onFullVideoAdLoad() {
AlarmManager.getInstance().closeAlarming();
LogUtil.d(TAG, "gromore体外定时全屏广告--> 3、Gromore 新插屏onFullVideoAdLoad ");
if (mTTFullVideoAd != null) {
adcode = mTTFullVideoAd.getAdNetworkRitId();
......@@ -406,6 +413,11 @@ public class NewOutTimeFull {
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TIME10_AD_SKIP.name());
}
@Override
public void onRewardVerify(@NonNull RewardItem rewardItem) {
}
};
private String getInner() {
......
......@@ -3,7 +3,10 @@ package com.mints.fiveworld.ad.half;
import android.app.Activity;
import android.util.Log;
import androidx.annotation.NonNull;
import com.bytedance.msdk.api.AdError;
import com.bytedance.msdk.api.reward.RewardItem;
import com.bytedance.msdk.api.v2.GMAdConstant;
import com.bytedance.msdk.api.v2.GMMediationAdSdk;
import com.bytedance.msdk.api.v2.GMSettingConfigCallback;
......@@ -399,6 +402,11 @@ public class Notice_NewOutSceneFull {
public void onSkippedVideo() {
Log.d(TAG, "onSkippedVideo");
}
@Override
public void onRewardVerify(@NonNull RewardItem rewardItem) {
}
};
private String getInner() {
......
......@@ -191,7 +191,7 @@ public class OutSceneInterstitial {
"体外广告播放时,预加载广告加载完成,但当前体外场景流程未走完,防止重复弹出")) {
// TODO 拦截
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_NEW_LISTENER_SUC_RETURN.name());
return;
// return;
}
WifiAdManager.Companion.getInstance().routeToActivity(mCarrier, mRouteType, mBundle);
......
......@@ -184,7 +184,7 @@ public class OutTimeInterstitial {
"体外广告播放时,预加载广告加载完成,但当前体外场景流程未走完,防止重复弹出")) {
// TODO 拦截
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_TIME10_NEW_CSJ_CACHE_SUC_RETURN.name());
return;
// return;
}
AppOutWifiAdManager.Companion.getInstance().routeToTime();
......
......@@ -7,13 +7,11 @@ import com.mints.fiveworld.ad.full.OutTimeFull
import com.mints.fiveworld.ad.half.NewOutTimeFull
import com.mints.fiveworld.common.Constant
import com.mints.fiveworld.common.random.HitChanceKeeper
import com.mints.fiveworld.manager.TimerPageManager
import com.mints.fiveworld.manager.UmengManager
import com.mints.fiveworld.manager.ad.CsjGroMoreManager
import com.mints.fiveworld.mvp.model.WeightBean
import com.mints.fiveworld.ui.activitys.keepalive.BoostFastActivity
import com.mints.fiveworld.ui.activitys.keepalive.TempTransparentActivity
import com.mints.fiveworld.ui.activitys.keepalive.TransSceneActivity
import com.mints.fiveworld.ui.activitys.keepalive.TransparentActivity
import com.mints.fiveworld.ui.activitys.keepalive.*
import com.mints.fiveworld.utils.ForegroundOrBackground
import com.mints.fiveworld.utils.TimeRender
import com.mints.fiveworld.utils.IntentUtils
......@@ -56,16 +54,25 @@ class AppOutWifiAdManager private constructor() {
}
fun routeToTime() {
var curClz: Class<*>
// 定时
if (TimerPageManager.changePage() == TimerPageManager.TIMER_PAGE1) {
curClz = BoostFastActivity::class.java
} else {
curClz = BoostFast2Activity::class.java
}
// 应用外定时动画 载体优化
val bundle = Bundle()
bundle.putInt(TransSceneActivity.TIMING_TYPE, mType)
bundle.putInt(TransparentActivity.TIMING_TYPE, mType)
bundle.putString(TransparentActivity.TRANSPARENT_TYPE, mTransparentType)
IntentUtils.startActivity3(
Constant.CARRIER_OUT_TEN_TIME,
bundle,
BoostFastActivity::class.java,
true,
IntentUtils.TIME_TYPE_ANIM
Constant.CARRIER_OUT_TEN_TIME,
bundle,
curClz,
true,
IntentUtils.TIME_TYPE_ANIM
)
}
......
package com.mints.fiveworld.ad.wifi
import android.app.Activity
import android.os.Bundle
import com.mints.fiveworld.ad.AdReportManager
import com.mints.fiveworld.ad.full.Home_OutTimeFull
import com.mints.fiveworld.ad.half.Home_NewOutTimeFull
import com.mints.fiveworld.common.Constant
import com.mints.fiveworld.common.random.HitChanceKeeper
import com.mints.fiveworld.manager.UmengManager
import com.mints.fiveworld.manager.ad.CsjGroMoreManager
import com.mints.fiveworld.mvp.model.WeightBean
import com.mints.fiveworld.ui.activitys.keepalive.*
import com.mints.fiveworld.utils.ForegroundOrBackground
import com.mints.fiveworld.utils.TimeRender
import com.mints.fiveworld.utils.IntentUtils
import com.mints.fiveworld.utils.LogUtil
import java.util.*
/**
*
* 应用外定时
*
* 广告形式-Gromore的插屏、全屏
*/
class HomeAppOutAdManager private constructor() {
companion object {
val instance: HomeAppOutAdManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
HomeAppOutAdManager()
}
}
// 当前广告类型
private var currentAdType = ""
private var weightList: ArrayList<WeightBean>? = null
private var mType = 0
private var mTransparentType: String? = null
@Volatile
private var isAdLoadOk = true
private var lastLoadAdTime = 0L
fun getAdLoadOk(): Boolean {
if (!TimeRender.isOverspedMin2(lastLoadAdTime, 1)) {
LogUtil.d("定时广告是否加载中...$isAdLoadOk")
return isAdLoadOk
}
LogUtil.d("定时广告未在加载中...")
return true
}
fun resetAdLoadOk() {
isAdLoadOk = true
}
/**
* 体外定时广告加载成功,开始调用sdk
*/
fun routeToHomeClick() {
val curClz = BoostHomeActivity::class.java
// 应用外定时动画 载体优化
val bundle = Bundle()
bundle.putInt(TransparentActivity.TIMING_TYPE, mType)
bundle.putString(TransparentActivity.TRANSPARENT_TYPE, mTransparentType)
IntentUtils.startActivity3(
Constant.CARRIER_OUT_HOME_CLICK,
bundle,
curClz,
true,
IntentUtils.SCENE_TYPE_ANIM
)
}
/**
* 体外定时加载广告,必须传入activity
*/
fun loadWifiAd(
activity: Activity,
type: Int,
transparentType: String? = TransparentActivity.TRANSPARENT_TYPE_HOME_CLICK
) {
mType = type
mTransparentType = transparentType
currentAdType = getRandomWeightType()
isAdLoadOk = false
lastLoadAdTime = System.currentTimeMillis()
when (currentAdType) {
Constant.GROMORE_INSERTSCREEN_AD -> {
preLoadInterstitialGroMore(activity)
}
Constant.GROMORE_FULL_AD -> {
preLoadFullGroMore(activity)
}
}
}
/**
* 体外定时插屏
*/
private fun preLoadInterstitialGroMore(activity: Activity) {
Home_NewOutTimeFull.getInstance().loadFullAd(activity)
}
/**
* 体外定时全屏
*/
private fun preLoadFullGroMore(activity: Activity) {
Home_OutTimeFull.getInstance().loadFullAd(activity)
}
/**
* 体外定时广告展示
*/
fun tempShowAd(_activity: Activity) {
// 前台 正常
if (ForegroundOrBackground.isForeground2()) {
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_HOME_CLICK_CSJ_CACHE_SUC_FOREGROUND.name)
showInterstitial(_activity, null)
return
}
// 用户手动 最小化 调用sdk展示广告
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_HOME_CLICK_CSJ_CACHE_SUC_BACKGROUND.name)
val bundle = Bundle()
bundle.putBoolean(HomeTempTransparentActivity.TEMP_TYPE, true)
IntentUtils.startActivity3(
Constant.CARRIER_OUT_TRANSPARENT_ACTIVITY,
bundle,
HomeTempTransparentActivity::class.java,
true,
IntentUtils.TIME_TYPE_HANDS_TRANS
)
}
/**
* 展示广告
*/
fun showInterstitial(_activity: Activity, wifiAdStatusListener: WifiAdStatusListener?) {
when (currentAdType) {
Constant.GROMORE_INSERTSCREEN_AD -> {
Home_NewOutTimeFull.getInstance()
.showFullAd(
_activity,
wifiAdStatusListener,
Constant.CARRIER_OUT_HOME_CLICK
)
}
Constant.GROMORE_FULL_AD -> {
Home_OutTimeFull.getInstance()
.showFullAd(_activity, wifiAdStatusListener, Constant.CARRIER_OUT_HOME_CLICK)
}
else -> {
wifiAdStatusListener?.adFail()
}
}
}
/**
* 定义广告类型规则
*/
private fun getRandomWeightType(): String {
if (weightList != null) {
weightList!!.clear()
} else {
weightList = ArrayList<WeightBean>()
}
var weight = 0
val fullInterstitialWeight = CsjGroMoreManager.APP_FULL_NEW_INTERSTITIAL_WEIGHT
if (fullInterstitialWeight > 0) {
weightList!!.add(WeightBean(fullInterstitialWeight, Constant.GROMORE_FULL_AD))
weight += fullInterstitialWeight
}
val interstitialWeight = CsjGroMoreManager.APP_NEW_INTERSTITIAL_WEIGHT
if (interstitialWeight > 0) {
weightList!!.add(WeightBean(interstitialWeight, Constant.GROMORE_INSERTSCREEN_AD))
weight += interstitialWeight
}
return HitChanceKeeper.getRandomWeightChance(weight, weightList, Constant.GROMORE_FULL_AD)
}
}
\ No newline at end of file
......@@ -56,6 +56,8 @@ public class AlarmManager implements Handler.Callback {
private static final String KEY_HANDLER_SEND_MILLIS = "handler_send_millis"; // 定时send时间戳
private static final int HANDLER_TIMEOUT_TIME_INTERVAL = 1; //单位分钟 定时器超时时间
public static boolean isAlarming = false;//定时出发中-true表示请求中,只校验广告成功,失败,3分钟
/**
* 但凡有这个接口就代表这个activity是由当前这个manager触发的,并且会导致计时器更新
*/
......@@ -459,6 +461,9 @@ public class AlarmManager implements Handler.Callback {
if (expire) {
// home键场景需要判断
isAlarming = true;
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TIME10.name());
AdReportManager.INSTANCE.eventScene(ForegroundOrBackground.isForeground2() ? AdReportManager.INNER_IN : AdReportManager.INNER_OUT,
......@@ -644,6 +649,9 @@ public class AlarmManager implements Handler.Callback {
Log.d(TAG, "exeActionForTime() called with: wifiActionTime = [" + wifiActionTime + "]");
long now = System.currentTimeMillis();
if (BaseUtils.INSTANCE.isExpire(wifiActionTime, WIFI_MINTER * 60 * 1000L)) {
closeAlarming();
//每3分钟 wifi界面功能重置
AdReportManager.INSTANCE.eventScene(
AdReportManager.INNER_OUT,
......@@ -723,4 +731,11 @@ public class AlarmManager implements Handler.Callback {
mSettings.writeLong(KEY_USER_ACTION_TIME, 0L);
}
/**
* home键场景 关闭定时请求
*/
public void closeAlarming() {
isAlarming = false;
}
}
......@@ -14,6 +14,7 @@ import com.mints.fiveworld.ad.wifi.WifiAdManager;
import com.mints.fiveworld.common.Constant;
import com.mints.fiveworld.manager.UmengManager;
import com.mints.fiveworld.manager.wifi.WifiDataManager;
import com.mints.fiveworld.ui.activitys.keepalive.TranHomeActivity;
import com.mints.fiveworld.ui.activitys.keepalive.TransparentActivity;
import com.mints.fiveworld.utils.ForegroundOrBackground;
import com.mints.fiveworld.utils.IntentUtils;
......@@ -126,6 +127,14 @@ public class HomePopManager implements Handler.Callback {
return;
}
//定时请求中-防止界面重叠,因为把加载成功的拦截去掉了
if (AlarmManager.isAlarming) {
LogUtil.d(TAG, "***当前类型:HOME-CLICK *** ->>>>>>>10分钟定时请求中 -防止界面重叠,因为把加载成功的拦截去掉了<<<<<<<-");
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_HOME_CLICK_TIMER.name());
return ;
}
// 体外场景或定时 进入透明页加载广告时,防止此段空白时间弹出广告
if (!AppOutWifiAdManager.Companion.getInstance().getAdLoadOk() ||
!WifiAdManager.Companion.getInstance().getAdLoadOk()) {
......@@ -242,13 +251,15 @@ public class HomePopManager implements Handler.Callback {
currentType = 0;
}
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_HOME_CLICK_AFTER_CHECK.name());
LogUtil.d(TAG, "home键 showTimingActivity: START!");
// 展示透明界面去预加载广告
Bundle bundle = new Bundle();
bundle.putInt(TransparentActivity.TIMING_TYPE, currentType++);
bundle.putString(TransparentActivity.TRANSPARENT_TYPE, TransparentActivity.TRANSPARENT_TYPE_HOME_CLICK);
IntentUtils.startActivity3(Constant.CARRIER_OUT_TRANSPARENT_ACTIVITY, bundle, TransparentActivity.class, false, IntentUtils.SCENE_TYPE_TRANS);
IntentUtils.startActivity3(Constant.CARRIER_OUT_TRANSPARENT_ACTIVITY, bundle, TranHomeActivity.class, false, IntentUtils.SCENE_TYPE_TRANS);
}
/**
......
......@@ -29,10 +29,11 @@ class AntiAuditManager private constructor() {
const val TODAY_INSTALL_APK_COUNT = "TODAY_INSTALL_APK_COUNT"// 安装个数
const val TODAY_INSTALL_SUM_COUNT = "TODAY_INSTALL_SUM_COUNT"// 安装总个数(阈值)
// senceType 0-vpn,1-反策略,2-协议 3-意见反馈
// senceType 0-vpn,1-反策略,2-协议 3-风控
const val SENCE_VPN = "0"// vpn
const val SENCE_FAZHI = "1"// 阈值
const val SENCE_AGREEMENT = "2"// 协议
const val SENCE_RISK = "3"// 风控
const val SENCE_FEEDBACK = "98"// 问题反馈 - 点击
const val SENCE_FEEDBACK_SUBMIT = "99"// 问题反馈 - 提交
......
package com.mints.fiveworld.manager;
import android.content.Context;
import android.text.TextUtils;
import com.ishumei.smantifraud.SmAntiFraud;
import com.mints.fiveworld.MintsApplication;
/**
* 描述:数美反欺诈
* 作者:孟崔广
* 时间:2020/10/10 10:44
*/
public class ShumeiManager {
/**
* 组织标识,邮件中organization项。
*/
public static final String ORGANIZATION = "46Y91K7dU5utpc48P6JQ";
/**
* 应用标识,登录数美后台应用管理查看。
*/
public static final String APP_ID = "5gworld";
/**
* 加密 KEY。
*/
public static final String PUBLIC_KEY = "MIIDLzCCAhegAwIBAgIBMDANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjELMAkGA1UECwwCU00xFjAUBgNVBAMMDWUuaXNodW1laS5jb20wHhcNMjAwMTA2MDk1ODM4WhcNNDAwMTAxMDk1ODM5WjAyMQswCQYDVQQGEwJDTjELMAkGA1UECwwCU00xFjAUBgNVBAMMDWUuaXNodW1laS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCAbaB3PszWA4FAqVfzZWsPchWK3rZPzb0XMb1O/7U5LkL25eY337rKY2UFz2NG2Lrimn3mnXZyFCFI3azSeR7Qh4IXJWlVMIQYQH49bKFPKMlJcdLB/J7xEDbvmAo3o7YEv4Z+VEplaH/QAtPjexLbfKP9VxLFtHDpqImxUprHat9OdmSzjaYZ7uB4aylGcBuDIRmqWri4t3r1li+EvHwx2OsyTXW12f9PwfuucWqTZ6ndxJ9xkUMKfFYmUhnuzudKzaly6C/14CZpc0GmS6QmXuy6uXxnjkmi1RUXX4q94BMfq/EyAp7OzEGh4D5kBljGYeadYoOKFSYkDvy/8qjbAgMBAAGjUDBOMB0GA1UdDgQWBBQEvkAQhyEi8TBS2TpBN0wbDTfVsTAfBgNVHSMEGDAWgBQEvkAQhyEi8TBS2TpBN0wbDTfVsTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQBovJ9Eu3hpfBCkpuTsY8GZ5URKwbYTL8bRNa6SFDoRxsCr7f22YZxJ8/nRrRR+QT3dW7zmJyWyzjwlovRWrVPL/uNGdAx72X+0dE65n86CHdXxJgHlEyRej77p7xmTRsncxqUAnKi5w8O/jKJRhgMbHyo+xzA4OW0tk78sKxlEJut18BbCCmPxocQBSHlyeA8Yp+knakHWlbGp9MCuuj53djvi7Tb4b7brGGepJiJUxEbVNTJM4PSdJno9obXohOKEU3yCLTDebR1jWgp7VOTGl1bi4gyBBNGUCJ1H0xh8z2MMa+FqLqMB/wce+sRWiRYLRqw/VUI4q4JwuWrrWYdL";
/**
* 加密 KEY,邮件中 Android ainfo key 项。
*/
public static final String AINFO_KEY = "tbAlHLEBfOeCTrYtRYwmtEDCFLskFXQoLZSfBSPXymdSldhFwASaQJRMNHuPnTVV";
private static ShumeiManager _inst;
private Context context;
public static ShumeiManager getInstance() {
if (_inst != null) {
return _inst;
} else {
_inst = new ShumeiManager();
return _inst;
}
}
private ShumeiManager() {
init();
}
private void init() {
context = MintsApplication.getContext();
}
/**
* 初始化数美SDK
*/
public void initShumei() {
try {
//1.通用配置项
SmAntiFraud.SmOption option = new SmAntiFraud.SmOption();
option.setOrganization(ORGANIZATION); //必填,组织标识,邮件中organization项
option.setAppId(APP_ID); //必填,应用标识,登录数美后台应用管理查看
option.setPublicKey(PUBLIC_KEY); //必填,加密 KEY,邮件中 android_public_key 附件内容
option.setAinfoKey(AINFO_KEY); //必填,加密 KEY,邮件中 Android ainfo key 项
//2.连接海外机房特殊配置项,仅供设备数据上报海外机房客户使用
// option.setArea(SmAntiFraud.AREA_XJP); //连接新加坡机房客户使用此选项
// option.setArea(SmAntiFraud.AREA_FJNY); //连接美国机房客户使用此选项
//3.SDK 初始化
SmAntiFraud.create(context, option);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取数美id
*/
public String getShumeiDeviceId() {
String id = "";
try {
id = SmAntiFraud.getDeviceId();
} catch (Exception e) {
e.printStackTrace();
id = "";
}
if (TextUtils.isEmpty(id)) {
initShumei();
}
return id;
}
}
package com.mints.fiveworld.manager
import com.mints.fiveworld.MintsApplication
import com.snail.antifake.jni.EmulatorDetectUtil
/**
* 描述:模拟器校验
* 作者:孟崔广
*/
object SimulatorManager {
/**
* 是否是模拟器 0-不是模拟器
*/
fun isEmulator(): Int {
try {
return if (EmulatorDetectUtil.isEmulator(MintsApplication.getContext())) 1 else 0
} catch (e: Exception) {
e.printStackTrace()
}
return 0
}
}
\ No newline at end of file
package com.mints.fiveworld.manager
/**
* 定时界面管理
*/
object TimerPageManager {
const val TIMER_TYPE = "TIMER_TYPE"
const val TIMER_PAGE1 = 0 //BoostFastActivity类
const val TIMER_PAGE2 = 1 //BoostFast2Activity类
fun changePage(): Int {
val currentType = AppPreferencesManager.get().getInt(TIMER_TYPE, TIMER_PAGE1)
if (currentType == 0) {
//当前是1类 需要变成2类
this.setTimerType(TIMER_PAGE2)
} else {
this.setTimerType(TIMER_PAGE1)
}
return currentType
}
/**
* type
*
* 0-BoostFastActivity类
* 1-BoostFast2Activity类
*/
private fun setTimerType(type: Int) {
AppPreferencesManager.get().put(TIMER_TYPE, type)
}
}
\ No newline at end of file
package com.mints.fiveworld.mvp.model
import java.io.Serializable
/**
* 风控
*/
data class RiskBean(
val msg: String = "",//提示msg字段内容
val isRiskUser: Boolean = false,//true-命中风控
) : Serializable
\ No newline at end of file
......@@ -2,17 +2,22 @@ package com.mints.fiveworld.mvp.presenters
import android.text.TextUtils
import com.mints.fiveworld.MintsApplication
import com.mints.fiveworld.ad.AdReportManager
import com.mints.fiveworld.common.Constant
import com.mints.fiveworld.common.DeviceInfo
import com.mints.fiveworld.manager.AppHttpManager
import com.mints.fiveworld.manager.AppPreferencesManager
import com.mints.fiveworld.manager.UserManager
import com.mints.fiveworld.keepalive.appswitch.AntiAuditManager
import com.mints.fiveworld.manager.*
import com.mints.fiveworld.mvp.model.BaseResponse
import com.mints.fiveworld.mvp.model.RiskBean
import com.mints.fiveworld.mvp.model.UserBean
import com.mints.fiveworld.mvp.model.UserTaskMsgBean
import com.mints.fiveworld.mvp.views.MainView
import com.mints.fiveworld.utils.AccessibilityUtils
import com.mints.fiveworld.utils.DeviceUuidFactory
import com.mints.fiveworld.utils.IPUtil
import com.mints.fiveworld.utils.LogUtil
import com.mints.fiveworld.utils.rxutil.CommonRxTask
import com.mints.fiveworld.utils.rxutil.RxjavaUtil
import com.mints.library.net.neterror.BaseSubscriber
import com.mints.library.net.neterror.Throwable
import java.util.*
......@@ -54,46 +59,67 @@ class MainPresenter : BasePresenter<MainView>() {
* 提交设备信息
*/
private fun saveTerminalInfo(userId: Long) {
val vo = HashMap<String, Any>()
val deviceInfo: DeviceInfo = DeviceInfo.instance
val macAddress: String = deviceInfo.getMacAddress()
val mac = macAddress.replace(":", "")
vo["mac"] = mac
vo["mac1"] = macAddress
vo["androidid"] = deviceInfo.getAndroidId(null)
vo["imei"] = deviceInfo.iMEI
if (!TextUtils.isEmpty(MintsApplication.OAID)) {
vo["oaid"] = MintsApplication.OAID
}
vo["os"] = "android"
vo["model"] = deviceInfo.newModel
vo["mem"] = deviceInfo.mem
vo["operator"] = deviceInfo.newOperator
vo["uuid"] = DeviceUuidFactory().deviceUuid
vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName
vo["device"] = DeviceUuidFactory().deviceUuid.toString()
AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo),
object : BaseSubscriber<BaseResponse<Any>>() {
override fun onCompleted() {
if (isLinkView) return
}
RxjavaUtil.executeRxTask<String>(object : CommonRxTask<String?>("") {
override fun doInIOThread() {
t = deviceInfo.getAppInfoMap()
}
override fun onError(e: Throwable) {
if (isLinkView) return
}
override fun doInUIThread() {
val vo = HashMap<String, Any>()
val macAddress: String = deviceInfo.getMacAddress()
val mac = macAddress.replace(":", "")
vo["mac"] = mac
vo["mac1"] = macAddress
vo["androidid"] = deviceInfo.getAndroidId(null)
vo["imei"] = deviceInfo.iMEI
vo["os"] = "android"
vo["model"] = deviceInfo.newModel
vo["uuid"] = DeviceUuidFactory().deviceUuid
vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName
vo["shumeiId"] = ShumeiManager.getInstance().getShumeiDeviceId()
vo["applist"] = t.toString()
override fun onNext(baseResponse: BaseResponse<Any>) {
if (isLinkView) return
when (baseResponse.status) {
200 -> {
// JpushManager.getInstance().setJpushService(userId.toString())
view.userLoginSuc()
}
}
}
})
vo["ischarge"] = deviceInfo.isCharging
vo["isusbdebug"] = deviceInfo.getUsbStatus
vo["iswifi"] = deviceInfo.getWifiConnected
vo["isroot"] = deviceInfo.isRoot
vo["isvpn"] = deviceInfo.isVPN
vo["memory"] = deviceInfo.totalMemory + "+" + deviceInfo.totalStorage
vo["operator"] = deviceInfo.operator
vo["oaid"] = MintsApplication.OAID
vo["isSimulator"] = SimulatorManager.isEmulator()
vo["isAccessibility"] = AccessibilityUtils.isAccessibilityEnabled()
AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo),
object : BaseSubscriber<BaseResponse<RiskBean>>() {
override fun onCompleted() {
if (isLinkView) return
}
override fun onError(e: Throwable) {
if (isLinkView) return
}
override fun onNext(baseResponse: BaseResponse<RiskBean>) {
when (baseResponse.status) {
200 -> {
// 命中风控
if(baseResponse.data.isRiskUser){
AntiAuditManager.instance.setBlack(true)
AntiAuditManager.instance.cmtBlackToServier(AntiAuditManager.SENCE_RISK)
}
view.userLoginSuc()
}
}
}
})
}
})
}
/**
......
......@@ -5,16 +5,18 @@ import com.mints.fiveworld.MintsApplication
import com.mints.fiveworld.ad.AdReportManager
import com.mints.fiveworld.common.Constant
import com.mints.fiveworld.common.DeviceInfo
import com.mints.fiveworld.manager.AppHttpManager
import com.mints.fiveworld.manager.TrackManager
import com.mints.fiveworld.manager.UmengManager
import com.mints.fiveworld.manager.UserManager
import com.mints.fiveworld.keepalive.appswitch.AntiAuditManager
import com.mints.fiveworld.manager.*
import com.mints.fiveworld.mvp.model.BaseResponse
import com.mints.fiveworld.mvp.model.RiskBean
import com.mints.fiveworld.mvp.model.SplashAppBean
import com.mints.fiveworld.mvp.model.UserBean
import com.mints.fiveworld.mvp.views.SplashView
import com.mints.fiveworld.utils.AccessibilityUtils
import com.mints.fiveworld.utils.DeviceUuidFactory
import com.mints.fiveworld.utils.LogUtil
import com.mints.fiveworld.utils.rxutil.CommonRxTask
import com.mints.fiveworld.utils.rxutil.RxjavaUtil
import com.mints.library.net.neterror.BaseSubscriber
import com.mints.library.net.neterror.Throwable
import com.mints.library.utils.CommonUtils
......@@ -116,71 +118,96 @@ class SplashPresenter : BasePresenter<SplashView>() {
private fun saveTerminalInfo(splashBean: SplashAppBean) {
LogUtil.d("SplashPresenter222","saveTerminalInfo 请求-1")
val vo = HashMap<String, Any>()
val deviceInfo: DeviceInfo = DeviceInfo.instance
val macAddress: String = deviceInfo.getMacAddress()
val mac = macAddress.replace(":", "")
vo["mac"] = mac
vo["mac1"] = macAddress
vo["androidid"] = deviceInfo.getAndroidId(null)
vo["imei"] = deviceInfo.iMEI
if (!TextUtils.isEmpty(MintsApplication.OAID)) {
vo["oaid"] = MintsApplication.OAID
}
vo["os"] = "android"
vo["model"] = deviceInfo.newModel
vo["mem"] = deviceInfo.mem
vo["operator"] = deviceInfo.newOperator
vo["uuid"] = DeviceUuidFactory().deviceUuid
vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName
AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo),
object : BaseSubscriber<BaseResponse<Any>>() {
override fun onCompleted() {
if (isLinkView) return
}
RxjavaUtil.executeRxTask<String>(object : CommonRxTask<String?>("") {
override fun doInIOThread() {
t = deviceInfo.getAppInfoMap()
}
override fun doInUIThread() {
val vo = HashMap<String, Any>()
val macAddress: String = deviceInfo.getMacAddress()
val mac = macAddress.replace(":", "")
vo["mac"] = mac
vo["mac1"] = macAddress
vo["androidid"] = deviceInfo.getAndroidId(null)
vo["imei"] = deviceInfo.iMEI
vo["os"] = "android"
vo["model"] = deviceInfo.newModel
vo["uuid"] = DeviceUuidFactory().deviceUuid
vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName
vo["shumeiId"] = ShumeiManager.getInstance().getShumeiDeviceId()
vo["applist"] = t.toString()
vo["ischarge"] = deviceInfo.isCharging
vo["isusbdebug"] = deviceInfo.getUsbStatus
vo["iswifi"] = deviceInfo.getWifiConnected
vo["isroot"] = deviceInfo.isRoot
vo["isvpn"] = deviceInfo.isVPN
vo["memory"] = deviceInfo.totalMemory + "+" + deviceInfo.totalStorage
vo["operator"] = deviceInfo.operator
vo["oaid"] = MintsApplication.OAID
vo["isSimulator"] = SimulatorManager.isEmulator()
vo["isAccessibility"] = AccessibilityUtils.isAccessibilityEnabled()
AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo),
object : BaseSubscriber<BaseResponse<RiskBean>>() {
override fun onCompleted() {
if (isLinkView) return
}
override fun onError(e: Throwable) {
if (isLinkView) return
view.getAppsCountFail()
LogUtil.d("SplashPresenter222","saveTerminalInfo onError-2")
override fun onError(e: Throwable) {
if (isLinkView) return
view.getAppsCountFail()
}
LogUtil.d("SplashPresenter222","saveTerminalInfo 返回 onError")
override fun onNext(baseResponse: BaseResponse<Any>) {
if (isLinkView) return
when (baseResponse.status) {
200 -> {
LogUtil.d("SplashPresenter222","saveTerminalInfo 返回onNext 200-2")
view.getAppsCountSuc(splashBean)
AdReportManager.eventExpress(
AdReportManager.INNER_IN,
AdReportManager.EVENT_TYPE_SHOWFAIL,
AdReportManager.EventType.EVENT_TYPE_SCENCE_IN_SPLASH_DEVICESUC.value,
"",
"",
"",
"",
System.currentTimeMillis(),
"TerminalInfoSuc",
"",
"",
""
)
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_IN_SPLASH_DEVICESUC.name)
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_MATE_TIMER_GET.name)
TrackManager.getInstance().splashTenMate(Constant.SPLASH_10_MATE)
}
override fun onNext(baseResponse: BaseResponse<RiskBean>) {
when (baseResponse.status) {
200 -> {
// 命中风控
if(baseResponse.data.isRiskUser){
AntiAuditManager.instance.setBlack(true)
AntiAuditManager.instance.cmtBlackToServier(AntiAuditManager.SENCE_RISK)
}
LogUtil.d("SplashPresenter222","saveTerminalInfo 返回onNext 200-2")
view.getAppsCountSuc(splashBean)
AdReportManager.eventExpress(
AdReportManager.INNER_IN,
AdReportManager.EVENT_TYPE_SHOWFAIL,
AdReportManager.EventType.EVENT_TYPE_SCENCE_IN_SPLASH_DEVICESUC.value,
"",
"",
"",
"",
System.currentTimeMillis(),
"TerminalInfoSuc",
"",
"",
""
)
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_IN_SPLASH_DEVICESUC.name)
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_MATE_TIMER_GET.name)
TrackManager.getInstance().splashTenMate(Constant.SPLASH_10_MATE)
}
else -> view.getAppsCountFail()
}
}
else -> view.getAppsCountFail()
}
}
})
})
}
})
}
private fun installApp() {
......
package com.mints.fiveworld.mvp.presenters;
import android.app.Activity;
import android.content.Intent;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import com.google.gson.JsonObject;
......@@ -12,6 +16,8 @@ import com.mints.fiveworld.keepalive.MateTimerManager;
import com.mints.fiveworld.keepalive.appswitch.AntiAuditManager;
import com.mints.fiveworld.manager.AppHttpManager;
import com.mints.fiveworld.manager.AppPreferencesManager;
import com.mints.fiveworld.manager.ShumeiManager;
import com.mints.fiveworld.manager.SimulatorManager;
import com.mints.fiveworld.manager.TrackManager;
import com.mints.fiveworld.manager.UmengManager;
import com.mints.fiveworld.manager.ad.CsjGroMoreManager;
......@@ -19,11 +25,17 @@ import com.mints.fiveworld.manager.UserManager;
import com.mints.fiveworld.manager.wifi.WifiDataManager;
import com.mints.fiveworld.mvp.model.BaseResponse;
import com.mints.fiveworld.mvp.model.OutAppConfig;
import com.mints.fiveworld.mvp.model.RiskBean;
import com.mints.fiveworld.mvp.model.UserBean;
import com.mints.fiveworld.mvp.model.WifiActiveBean;
import com.mints.fiveworld.ui.activitys.HintActivity;
import com.mints.fiveworld.utils.AccessibilityUtils;
import com.mints.fiveworld.utils.DeviceUuidFactory;
import com.mints.fiveworld.utils.ForegroundOrBackground;
import com.mints.fiveworld.utils.LogUtil;
import com.mints.fiveworld.utils.WifiUtils;
import com.mints.fiveworld.utils.rxutil.CommonRxTask;
import com.mints.fiveworld.utils.rxutil.RxjavaUtil;
import com.mints.library.net.neterror.BaseSubscriber;
import com.mints.library.net.neterror.Throwable;
......@@ -60,42 +72,112 @@ public class TrackPresenter extends BaseTrackPresenter {
}
public void saveTerminalInfo() {
DeviceInfo deviceInfo = DeviceInfo.Companion.getInstance();
HashMap<String, Object> vo = new HashMap<>();
DeviceInfo deviceInfo = DeviceInfo.Companion.getInstance();
String macAddress = deviceInfo.getMacAddress();
String mac = macAddress.replace(":", "");
vo.put("mac", mac);
vo.put("mac1", macAddress);
vo.put("androidid", deviceInfo.getAndroidId(null));
vo.put("imei", deviceInfo.getIMEI());
if (!TextUtils.isEmpty(MintsApplication.OAID)) {
vo.put("oaid", MintsApplication.OAID);
}
vo.put("os", "android");
vo.put("model", deviceInfo.getNewModel());
vo.put("mem", deviceInfo.getMem());
vo.put("operator", deviceInfo.getNewOperator());
vo.put("uuid", new DeviceUuidFactory().getDeviceUuid());
vo.put("osversion", deviceInfo.getOSVersion());
vo.put("appversion", deviceInfo.getVersionName());
vo.put("device", new DeviceUuidFactory().getDeviceUuid().toString());
AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo),
new BaseSubscriber<BaseResponse<Object>>() {
@Override
public void onCompleted() {
}
RxjavaUtil.executeRxTask(new CommonRxTask<String>("") {
@Override
public void doInIOThread() {
setT(deviceInfo.getAppInfoMap());
}
@Override
public void doInUIThread() {
String macAddress = deviceInfo.getMacAddress();
if (!TextUtils.isEmpty(macAddress)) {
String mac = macAddress.replace(":", "");
vo.put("mac", mac);
vo.put("mac1", macAddress);
}
vo.put("androidid", deviceInfo.getAndroidId(null));
vo.put("imei", deviceInfo.getIMEI());
vo.put("os", "android");
vo.put("model", deviceInfo.getNewModel());
vo.put("uuid", new DeviceUuidFactory().getDeviceUuid());
vo.put("shumeiId", ShumeiManager.getInstance().getShumeiDeviceId());
vo.put("osversion", deviceInfo.getOSVersion());
vo.put("appversion", deviceInfo.getVersionName());
vo.put("applist", getT());
vo.put("ischarge", deviceInfo.isCharging());
vo.put("isusbdebug", deviceInfo.getGetUsbStatus());
vo.put("iswifi", deviceInfo.getGetWifiConnected());
vo.put("isroot", deviceInfo.isRoot());
vo.put("isvpn", deviceInfo.isVPN());
vo.put("memory", deviceInfo.getTotalMemory() + "+" + deviceInfo.getTotalStorage());
vo.put("operator", deviceInfo.getOperator());
vo.put("oaid", MintsApplication.OAID);
vo.put("isSimulator", SimulatorManager.INSTANCE.isEmulator());
vo.put("isAccessibility", AccessibilityUtils.isAccessibilityEnabled());
AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo),
new BaseSubscriber<BaseResponse<RiskBean>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
@Override
public void onError(Throwable e) {
}
}
@Override
public void onNext(BaseResponse<RiskBean> baseResponse) {
try {
if (baseResponse.getStatus() == 200) {
// 命中风控
if(baseResponse.getData().isRiskUser()){
AntiAuditManager.Companion.getInstance().setBlack(true);
AntiAuditManager.Companion.getInstance().cmtBlackToServier(AntiAuditManager.SENCE_RISK);
// 后台返回msg跳转界面提示
Activity forwardActivity = ForegroundOrBackground.getApp_activity();
if (forwardActivity != null&&!TextUtils.isEmpty(baseResponse.getData().getMsg())) {
if (!forwardActivity.isFinishing()) {
new Handler(Looper.getMainLooper()).postDelayed(() -> {
Intent intent= new Intent(forwardActivity, HintActivity.class);
intent.putExtra(HintActivity.HINT_TEXT,baseResponse.getData().getMsg());
forwardActivity.startActivity(intent);
}, 200);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
@Override
public void onNext(BaseResponse<Object> baseResponse) {
}
});
}
});
// RxjavaUtil.executeRxTask(new CommonRxTask<String>("") {
// @Override
// public void doInIOThread() {
// setT(deviceInfo.getRunningApp());
// }
//
// @Override
// public void doInUIThread() {
// vo.put("appRunningPkgList", getT());
// AppHttpManager.getInstance(loanApplication)
// .call(loanService.saveTerminalInfo(vo),
// new BaseSubscriber<BaseResponse<Object>>() {
// @Override
// public void onCompleted() {
// }
//
// @Override
// public void onError(Throwable e) {
// }
//
// @Override
// public void onNext(BaseResponse<Object> baseResponse) {
// }
// });
// }
// });
}
});
}
public void cmtGroMoreInfo(HashMap<String, Object> vo) {
......
......@@ -6,6 +6,7 @@ import com.google.gson.JsonObject;
import com.mints.fiveworld.BuildConfig;
import com.mints.fiveworld.mvp.model.BaseResponse;
import com.mints.fiveworld.mvp.model.OutAppConfig;
import com.mints.fiveworld.mvp.model.RiskBean;
import com.mints.fiveworld.mvp.model.SplashAppBean;
import com.mints.fiveworld.mvp.model.UserBean;
import com.mints.fiveworld.mvp.model.UserTaskMsgBean;
......@@ -48,7 +49,7 @@ public interface LoanService {
* 提交设备信息、后台激活
*/
@POST("api/saveTerminalInfo")
Observable<BaseResponse<Object>> saveTerminalInfo(@Body Map<String, Object> vo);
Observable<BaseResponse<RiskBean>> saveTerminalInfo(@Body Map<String, Object> vo);
/**
* 场景事件
......
......@@ -6,6 +6,7 @@ import com.bytedance.hume.readapk.HumeSDK;
import com.google.gson.Gson;
import com.mints.fiveworld.BuildConfig;
import com.mints.fiveworld.MintsApplication;
import com.mints.fiveworld.common.Constant;
import com.mints.fiveworld.common.DeviceInfo;
import com.mints.fiveworld.manager.TrackManager;
import com.mints.fiveworld.manager.UserManager;
......@@ -98,6 +99,7 @@ public class OkHttpInterceptor implements Interceptor {
addHeader("version", BuildConfig.VERSION_NAME).
addHeader("token", tokenID).
addHeader("channel", channel).
addHeader("pkgName", Constant.MINTS_PKG_NAME).
addHeader("wifiId", DeviceInfo.Companion.getInstance().getBssid()).
addHeader("wifiName", DeviceInfo.Companion.getInstance().getSsid()).
addHeader("new-session", MD5.GetMD5Code(String.valueOf(time))).
......
package com.mints.fiveworld.ui.activitys
import android.annotation.SuppressLint
import android.os.Bundle
import android.view.View
import com.bytedance.hume.readapk.HumeSDK
import com.mints.fiveworld.BuildConfig
import com.mints.fiveworld.MintsApplication
import com.mints.fiveworld.R
import com.mints.fiveworld.common.Constant
import com.mints.fiveworld.keepalive.appswitch.AntiAuditManager
import com.mints.fiveworld.manager.AppPreferencesManager
import com.mints.fiveworld.manager.wifi.WifiDataManager
import com.mints.fiveworld.ui.activitys.base.BaseActivity
import com.mints.fiveworld.utils.ToastUtil
import com.mints.library.utils.CommonUtils
import com.mints.library.utils.ConstantUtil
import kotlinx.android.synthetic.main.activity_aboutus.*
import kotlinx.android.synthetic.main.activity_hint.*
import kotlinx.android.synthetic.main.header_layout.*
/**
* 描述:提示
* 作者:孟崔广
* 时间:2021/12/13 14:05
*/
class HintActivity : BaseActivity(), View.OnClickListener {
companion object {
const val HINT_TEXT = "HINT_TEXT"
}
var hintText=""
override fun getContentViewLayoutID() = R.layout.activity_hint
override fun isApplyKitKatTranslucency() = false
override fun toggleOverridePendingTransition() = true
override fun getOverridePendingTransitionMode() = TransitionMode.SCALE
override fun getBundleExtras(extras: Bundle?) {
super.getBundleExtras(extras)
extras?.let {
hintText = it.getString(HINT_TEXT, "")
}
}
override fun initViewsAndEvents() {
initListener()
tv_hint_text?.text=hintText
}
override fun onClick(v: View?) {
when (v?.id) {
R.id.btn_hint_next ->{
baseApplication?.exitApp()
}
}
}
private fun initListener() {
btn_hint_next.setOnClickListener(this)
}
override fun onBackPressed() {
// super.onBackPressed()
}
}
......@@ -27,6 +27,7 @@ import com.mints.fiveworld.common.DeviceInfo;
import com.mints.fiveworld.keepalive.MateTimerManager;
import com.mints.fiveworld.keepalive.appswitch.AntiAuditManager;
import com.mints.fiveworld.manager.AppPreferencesManager;
import com.mints.fiveworld.manager.ShumeiManager;
import com.mints.fiveworld.manager.TrackManager;
import com.mints.fiveworld.manager.UmengManager;
import com.mints.fiveworld.manager.ad.CsjGroMoreManager;
......@@ -437,7 +438,6 @@ public class SplashActivity extends BaseActivity implements SplashView {
if (!deviceInfo.getSignInfo()) {
getBaseApplication().exitApp();
} else {
// splashPresenter.getCloseNeedInitAppsCount();
showPowerDialog();
}
}
......@@ -545,6 +545,7 @@ public class SplashActivity extends BaseActivity implements SplashView {
splashPresenter.getCloseNeedInitAppsCount();
isClickAgree = true;
mProgressBar.startOneAnim();
ShumeiManager.getInstance().initShumei();
}
}
......@@ -592,6 +593,7 @@ public class SplashActivity extends BaseActivity implements SplashView {
}
getBaseApplication().thirdConfig();
ShumeiManager.getInstance().initShumei();
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_IN_SPLASH_AGREE.name());
......
package com.mints.fiveworld.ui.activitys.keepalive
import android.os.Bundle
import android.view.View
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.widget.LinearLayoutCompat
import com.mints.fiveworld.R
import com.mints.fiveworld.ad.AdReportManager
import com.mints.fiveworld.ad.express.ExpressAdCallback
import com.mints.fiveworld.ad.express.OutSimpleExpress
import com.mints.fiveworld.ad.wifi.AppOutWifiAdManager
import com.mints.fiveworld.common.Constant
import com.mints.fiveworld.keepalive.AlarmManager
import com.mints.fiveworld.keepalive.HomePopManager
import com.mints.fiveworld.manager.UmengManager
import com.mints.fiveworld.manager.wifi.WifiDataManager
import com.mints.fiveworld.ui.widgets.CircleCleanAnimationView
import com.mints.fiveworld.ui.widgets.RoundRectLayout
import com.mints.fiveworld.ui.widgets.countdowntimer.CountDownTimerSupport
import com.mints.fiveworld.ui.widgets.countdowntimer.OnCountDownTimerListener
import com.mints.fiveworld.utils.LogUtil
import com.mints.fiveworld.utils.Utils
import kotlin.random.Random
/**
* 描述:定时 动画页2
*/
class BoostFast2Activity : BaseOutActivity(), AlarmManager.AlarmManagerManagedActivity {
private val TAG = BoostFast2Activity::class.java.simpleName
private var mType = 0
private var mTransparentType = TransparentActivity.TRANSPARENT_TYPE_TIMER
private var frameLayout: FrameLayout? = null
private var ccav_speed: CircleCleanAnimationView? = null
private var iv_close_boost: ImageView? = null
private var tvContent_boost: TextView? = null
private var adContainer: LinearLayoutCompat? = null
private var mTimer: CountDownTimerSupport? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_boost2_fast)
LogUtil.d(TAG, "onCreate 定时 动画页2")
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TRANSPARENT_ONCREATE.name)
try {
intent?.extras?.let {
mType = it.getInt(TransparentActivity.TIMING_TYPE, 0)
mTransparentType = it.getString(
TransparentActivity.TRANSPARENT_TYPE,
TransparentActivity.TRANSPARENT_TYPE_TIMER
)
}
} catch (e: Exception) {
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TRANSPARENT_INTENTEXTRAS_ERROR.name)
e.printStackTrace()
}
try {
initView()
} catch (e: Exception) {
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TRANSPARENT_INITVIEW_ERROR.name)
e.printStackTrace()
}
try {
initData()
} catch (e: Exception) {
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TRANSPARENT_INITDATA_ERROR.name)
e.printStackTrace()
}
startAnim()
}
private fun initView() {
frameLayout = findViewById<RoundRectLayout>(R.id.fl_ad_boost_two)
ccav_speed = findViewById<CircleCleanAnimationView>(R.id.ccav_speed_two)
iv_close_boost = findViewById<ImageView>(R.id.iv_close_boost_two)
tvContent_boost = findViewById<TextView>(R.id.tvContent_boost_two)
adContainer = findViewById<LinearLayoutCompat>(R.id.adContainer_two)
iv_close_boost?.setOnClickListener {
finish()
overridePendingTransition(0, 0)
}
}
private fun initData() {
if (mTransparentType == TransparentActivity.TRANSPARENT_TYPE_TIMER) {
WifiDataManager.increaseCount(WifiDataManager.TIMING)
} else {
HomePopManager.getInstance().writePopTime(System.currentTimeMillis())
WifiDataManager.increaseCount(WifiDataManager.HOME_CLICK)
}
}
override fun onDestroy() {
try {
stopTimer()
frameLayout?.removeAllViews()
frameLayout = null
OutSimpleExpress.instance.cmtClose()
} catch (e: Exception) {
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TRANSPARENT_ONDESTROY_ERROR.name)
e.printStackTrace()
}
super.onDestroy()
}
private fun startAnim() {
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TRANSPARENT_ANIMATION_START.name)
try {
when (mType) {
TransparentActivity.TIMING_TYPE_BOOST -> ccav_speed?.setCenterImageView(R.mipmap.ic_app_out_timing_boost)
TransparentActivity.TIMING_TYPE_CLEAN -> ccav_speed?.setCenterImageView(R.mipmap.ic_app_out_timing_clean)
TransparentActivity.TIMING_TYPE_SAVE_ELE -> ccav_speed?.setCenterImageView(R.mipmap.ic_app_out_timing_save_ele)
TransparentActivity.TIMING_TYPE_COOL -> ccav_speed?.setCenterImageView(R.mipmap.ic_app_out_timing_cool)
TransparentActivity.TIMING_TYPE_SAFE -> ccav_speed?.setCenterImageView(R.mipmap.ic_app_out_timing_safe)
TransparentActivity.TIMING_TYPE_PRICARY -> ccav_speed?.setCenterImageView(R.mipmap.ic_app_out_timing_pricary)
}
ccav_speed?.startAnimation()
// 延迟跳转
val time = (WifiDataManager.getAnimInterval() * 1000).toLong()//1000
val allTime = time + 2000 // 4000
if (mTimer != null) {
mTimer!!.stop()
mTimer = null
}
mTimer = CountDownTimerSupport(allTime, 1000L)
mTimer?.setOnCountDownTimerListener(object : OnCountDownTimerListener {
override fun onTick(millisUntilFinished: Long) {
LogUtil.d(TAG, "onTick ->>>>> millisUntilFinished=$millisUntilFinished time=$time")
if (millisUntilFinished == allTime - time) {
LogUtil.d(TAG, "onTick ->>>>> 进来了")
// 动画结束
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TRANSPARENT_ANIMATION_END.name)
AppOutWifiAdManager.instance.tempShowAd(this@BoostFast2Activity)
}
}
override fun onFinish() {
if (!this@BoostFast2Activity.isFinishing) {
LogUtil.d(TAG, "onFinish ->>>>> 执行了")
updateUi()
}
}
})
mTimer?.start()
}catch (e: Exception) {
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TRANSPARENT_STARTANIM_ERROR.name)
e.printStackTrace()
}
}
private fun updateUi() {
try {
ccav_speed?.stopAnimation()
ccav_speed?.visibility = View.GONE
adContainer?.visibility = View.VISIBLE
var contentStr = StringBuilder()
when (mType) {
TransparentActivity.TIMING_TYPE_BOOST -> contentStr.append("手机速度已达最佳")
TransparentActivity.TIMING_TYPE_CLEAN -> {
contentStr.append("已为您清理" + (10 + Random.nextInt(20)) + "MB垃圾" + "\n垃圾清理已完成")
}
TransparentActivity.TIMING_TYPE_SAVE_ELE -> {
contentStr.append("已为您延长待机时间" + (10 + Random.nextInt(20)) + "分钟")
}
TransparentActivity.TIMING_TYPE_COOL -> {
contentStr.append("手机已降温" + (2 + Random.nextInt(3)) + "°C")
}
TransparentActivity.TIMING_TYPE_SAFE -> contentStr.append("当前网络环境良好")
TransparentActivity.TIMING_TYPE_PRICARY -> contentStr.append("当前使用环境安全")
}
if (mTransparentType == TransparentActivity.TRANSPARENT_TYPE_TIMER) {
tvContent_boost?.text = contentStr
} else {
contentStr.append("~")
tvContent_boost?.text = contentStr
}
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_ACTIVITY_SHOW_SUC.name)
} catch (e: Exception) {
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TRANSPARENT_UPDATEUI_ERROR.name)
e.printStackTrace()
}
initExpress()
}
/**初始化信息iyc*/
private fun initExpress() {
try {
OutSimpleExpress.instance.getAdView(object : ExpressAdCallback {
override fun loadSuccess(adView: FrameLayout?) {
adView?.let {
Utils.removeFromParent(it)
frameLayout?.removeAllViews()
frameLayout?.addView(it)
}
}
override fun renderSuccess(adView: FrameLayout?): Boolean {
if (this@BoostFast2Activity.isFinishing) return false
adView?.let {
Utils.removeFromParent(it)
frameLayout?.removeAllViews()
frameLayout?.addView(it)
return true
}
return false
}
override fun loadFail() {}
}, Constant.CARRIER_OUT_TEN_TIME)
} catch (e: Exception) {
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TRANSPARENT_INITEXPRESS_ERROR.name)
e.printStackTrace()
}
}
fun stopTimer() {
mTimer?.stop()
mTimer?.setOnCountDownTimerListener(null)
mTimer = null
}
override fun onBackPressed() {
// super.onBackPressed()
}
}
package com.mints.fiveworld.ui.activitys.keepalive
import android.app.Activity
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import com.mints.fiveworld.R
import com.mints.fiveworld.ad.AdReportManager
import com.mints.fiveworld.ad.wifi.HomeAppOutAdManager
import com.mints.fiveworld.ad.wifi.WifiAdStatusListener
import com.mints.fiveworld.manager.UmengManager
import com.mints.fiveworld.utils.StatusBarUtil
/**
*
* 描述:透明activity,用于加载广告,用户手动最小化 HomeClick场景
*/
class HomeTempTransparentActivity : Activity(), OutManagedActivity {
companion object {
const val TEMP_TYPE = "TEMP_TYPE"
const val CARRIER_TYPE = "CARRIER_TYPE"
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_trans_home_temp)
StatusBarUtil.transparencyBar(this)
// 透明页展示
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_HOME_CLICK_SHOW_AD_TRANS.name)
HomeAppOutAdManager.instance.showInterstitial(this, object : WifiAdStatusListener {
override fun adSuccess() {
}
override fun adFail() {
finish()
overridePendingTransition(0, 0)
}
override fun adClose() {
finish()
overridePendingTransition(0, 0)
}
})
Handler(Looper.getMainLooper()).postDelayed({
if (!this.isFinishing) {
// 透明页自动页面
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_HOME_CLICK_SHOW_AD_TRANS_AUTO_CLOSE.name)
finish()
overridePendingTransition(0, 0)
}
}, 5000);
}
}
package com.mints.fiveworld.ui.activitys.keepalive
import android.app.Activity
import android.os.Bundle
import com.mints.fiveworld.MintsApplication
import com.mints.fiveworld.R
import com.mints.fiveworld.ad.express.OutSimpleExpress
import com.mints.fiveworld.ad.AdReportManager
import com.mints.fiveworld.ad.wifi.HomeAppOutAdManager
import com.mints.fiveworld.common.Constant
import com.mints.fiveworld.manager.UmengManager
import com.mints.fiveworld.utils.StatusBarUtil
/**
* 描述:HomeClick 透明activity,用于加载广告
*/
class TranHomeActivity : Activity(), OutManagedActivity {
private var mType = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_trans_home)
StatusBarUtil.transparencyBar(this)
// base extras
intent.extras?.let {
// 当前定时type
mType = it.getInt(TransparentActivity.TIMING_TYPE, 0)
}
loadTimeAd()
finish()
overridePendingTransition(0, 0)
}
/**
* 加载定时广告
*/
private fun loadTimeAd() {
AdReportManager.eventScene(
AdReportManager.INNER_OUT,
System.currentTimeMillis(),
Constant.CARRIER_OUT_TRANSPARENT_ACTIVITY,
"HomeClick透明页",
AdReportManager.EVENT_TYPE_SCENCE_SHOW
)
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_HOME_CLICK_TRANSPARENT_SHOW_SUC.name)
HomeAppOutAdManager.instance.loadWifiAd(
this,
mType,
TransparentActivity.TRANSPARENT_TYPE_HOME_CLICK
)
// 预加载信息流
OutSimpleExpress.instance.loadADFrameLayout(
MintsApplication.getContext(),
Constant.CARRIER_OUT_HOME_CLICK
)
}
}
......@@ -159,7 +159,7 @@ public class CycleProgress extends View {
delta = delta == 0 ? 1 : delta;
mProgressWidth = progress * mViewWidth;
mAnimator = ValueAnimator.ofFloat(0.15f, progress).setDuration(delta * DURATION);
mAnimator = ValueAnimator.ofFloat(0.6f, progress).setDuration(delta * DURATION);
mAnimator.setRepeatCount(ValueAnimator.INFINITE);
ValueAnimator.AnimatorUpdateListener mUpdateListener = animation -> {
......
package com.mints.fiveworld.utils;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
import android.text.TextUtils;
import android.view.accessibility.AccessibilityManager;
import com.mints.fiveworld.MintsApplication;
import java.util.ArrayList;
import java.util.List;
/**
* 无障碍服务
*/
public class AccessibilityUtils {
/**
* 判断用户是否开启无障碍服务
*
* @return 0-未开启无障碍功能
* @throws RuntimeException
*/
public static int isAccessibilityEnabled() {
try {
// 检查AccessibilityService是否开启
AccessibilityManager am = (AccessibilityManager) MintsApplication.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
boolean isAccessibilityEnabled_flag = am.isEnabled();
return isAccessibilityEnabled_flag ? 1 : 0;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
// boolean isExploreByTouchEnabled_flag = false;
//
// // 检查无障碍服务是否以语音播报的方式开启
// isExploreByTouchEnabled_flag = isScreenReaderActive(context);
//
// return (isAccessibilityEnabled_flag && isExploreByTouchEnabled_flag);
}
private final static String SCREEN_READER_INTENT_ACTION = "android.accessibilityservice.AccessibilityService";
private final static String SCREEN_READER_INTENT_CATEGORY = "android.accessibilityservice.category.FEEDBACK_SPOKEN";
private static boolean isScreenReaderActive(Context context) {
// 通过Intent方式判断是否存在以语音播报方式提供服务的Service,还需要判断开启状态
Intent screenReaderIntent = new Intent(SCREEN_READER_INTENT_ACTION);
screenReaderIntent.addCategory(SCREEN_READER_INTENT_CATEGORY);
List<ResolveInfo> screenReaders = context.getPackageManager().queryIntentServices(screenReaderIntent, 0);
// 如果没有,返回false
if (screenReaders == null || screenReaders.size() <= 0) {
return false;
}
boolean hasActiveScreenReader = false;
if (Build.VERSION.SDK_INT <= 15) {
ContentResolver cr = context.getContentResolver();
Cursor cursor = null;
int status = 0;
for (ResolveInfo screenReader : screenReaders) {
cursor = cr.query(Uri.parse("content://" + screenReader.serviceInfo.packageName
+ ".providers.StatusProvider"), null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
status = cursor.getInt(0);
cursor.close();
// 状态1为开启状态,直接返回true即可
if (status == 1) {
return true;
}
}
}
} else if (Build.VERSION.SDK_INT >= 26) {
// 高版本可以直接判断服务是否处于开启状态
for (ResolveInfo screenReader : screenReaders) {
hasActiveScreenReader |= isAccessibilitySettingsOn(context, screenReader.serviceInfo.packageName + "/" + screenReader.serviceInfo.name);
}
} else {
// 判断正在运行的Service里有没有上述存在的Service
List<String> runningServices = new ArrayList<String>();
android.app.ActivityManager manager = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
for (android.app.ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
runningServices.add(service.service.getPackageName());
}
for (ResolveInfo screenReader : screenReaders) {
if (runningServices.contains(screenReader.serviceInfo.packageName)) {
hasActiveScreenReader |= true;
}
}
}
return hasActiveScreenReader;
}
// To check if service is enabled
private static boolean isAccessibilitySettingsOn(Context context, String service) {
TextUtils.SimpleStringSplitter mStringColonSplitter = new TextUtils.SimpleStringSplitter(':');
String settingValue = Settings.Secure.getString(
context.getApplicationContext().getContentResolver(),
Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES);
if (settingValue != null) {
mStringColonSplitter.setString(settingValue);
while (mStringColonSplitter.hasNext()) {
String accessibilityService = mStringColonSplitter.next();
if (accessibilityService.equalsIgnoreCase(service)) {
return true;
}
}
}
return false;
}
/**
* 判断AccessibilityService服务是否已经启动
*
* @param context
* @param name
* @return
*/
public static boolean isStartAccessibilityService(Context context, String name) {
AccessibilityManager am = (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE);
List<AccessibilityServiceInfo> serviceInfos = am.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_GENERIC);
for (AccessibilityServiceInfo info : serviceInfos) {
String id = info.getId();
LogUtil.d("all -->" + id);
if (id.contains(name)) {
return true;
}
}
return false;
}
}
......@@ -206,15 +206,15 @@ public class ForegroundOrBackground implements Application.ActivityLifecycleCall
count--;
}
if (activity instanceof OutManagedActivity) {
if (activity instanceof OutManagedActivity&&outActivityCount!=0) {
outActivityCount--;
}
if (activity instanceof AlarmManager.AlarmManagerManagedActivity) {
if (activity instanceof AlarmManager.AlarmManagerManagedActivity&&timeActivityCount!=0) {
timeActivityCount--;
}
if (isFullADActivity(activity.getClass().getSimpleName())) {
if (isFullADActivity(activity.getClass().getSimpleName())&&fullVideoActivityCount!=0) {
fullVideoActivityCount--;
}
}
......
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_40000000">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_marginStart="10dp"
android:layout_marginTop="30dp"
android:drawableLeft="@drawable/ic_launcher_app_out"
android:drawablePadding="4dp"
android:gravity="center_vertical"
android:text="@string/appName"
android:textColor="@color/color_50FFFFFF"
android:textSize="6sp" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/adContainer_two"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical"
android:visibility="gone">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginStart="30dp"
android:layout_marginEnd="30dp"
android:layout_marginBottom="10dp"
android:background="@mipmap/ic_app_out_background">
<ImageView
android:id="@+id/iv_close_boost_two"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_alignParentEnd="true"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:src="@mipmap/ic_close_app_out" />
<TextView
android:id="@+id/tvContent_boost_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginEnd="5dp"
android:drawableStart="@mipmap/ic_right"
android:drawablePadding="6dp"
android:text="-"
android:textColor="@color/white"
android:textSize="18sp" />
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignTop="@id/tvContent_boost_two"
android:layout_toEndOf="@id/tvContent_boost_two"
android:src="@mipmap/ic_app_out_timing_star" />
</RelativeLayout>
<com.mints.fiveworld.ui.widgets.RoundRectLayout
android:id="@+id/fl_ad_boost_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginStart="30dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="30dp"
android:background="@drawable/shape_gold_card" />
</androidx.appcompat.widget.LinearLayoutCompat>
<com.mints.fiveworld.ui.widgets.CircleCleanAnimationView
android:id="@+id/ccav_speed_two"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center" />
</FrameLayout>
......@@ -34,7 +34,7 @@
android:background="@mipmap/ic_app_out_background">
<ImageView
android:id="@+id/iv_close"
android:id="@+id/iv_close_boost"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_alignParentEnd="true"
......@@ -43,7 +43,7 @@
android:src="@mipmap/ic_close_app_out" />
<TextView
android:id="@+id/tvContent"
android:id="@+id/tvContent_boost"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
......@@ -57,8 +57,8 @@
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignTop="@id/tvContent"
android:layout_toEndOf="@id/tvContent"
android:layout_alignTop="@id/tvContent_boost"
android:layout_toEndOf="@id/tvContent_boost"
android:src="@mipmap/ic_app_out_timing_star" />
</RelativeLayout>
......@@ -75,15 +75,6 @@
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- <View-->
<!-- android:id="@+id/container"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- android:layout_marginStart="50dp"-->
<!-- android:layout_marginTop="200dp"-->
<!-- android:layout_marginEnd="50dp"-->
<!-- android:layout_marginBottom="200dp" />-->
<com.mints.fiveworld.ui.widgets.CircleCleanAnimationView
android:id="@+id/ccav_speed"
android:layout_width="match_parent"
......
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_40000000">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_marginStart="10dp"
android:layout_marginTop="30dp"
android:drawableLeft="@drawable/ic_launcher_app_out"
android:drawablePadding="4dp"
android:gravity="center_vertical"
android:text="@string/appName"
android:textColor="@color/color_50FFFFFF"
android:textSize="6sp" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/adContainer_home"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical"
android:visibility="gone">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginStart="30dp"
android:layout_marginEnd="30dp"
android:layout_marginBottom="10dp"
android:background="@mipmap/ic_app_out_background">
<ImageView
android:id="@+id/iv_close_boost_home"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_alignParentEnd="true"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:src="@mipmap/ic_close_app_out" />
<TextView
android:id="@+id/tvContent_boost_home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginEnd="5dp"
android:drawableStart="@mipmap/ic_right"
android:drawablePadding="6dp"
android:text="-"
android:textColor="@color/white"
android:textSize="18sp" />
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignTop="@id/tvContent_boost_home"
android:layout_toEndOf="@id/tvContent_boost_home"
android:src="@mipmap/ic_app_out_timing_star" />
</RelativeLayout>
<com.mints.fiveworld.ui.widgets.RoundRectLayout
android:id="@+id/fl_ad_boost_home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginStart="30dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="30dp"
android:background="@drawable/shape_gold_card" />
</androidx.appcompat.widget.LinearLayoutCompat>
<com.mints.fiveworld.ui.widgets.CircleCleanAnimationView
android:id="@+id/ccav_speed_home"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center" />
</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_20000000"
xmlns:tools="http://schemas.android.com/tools">
<LinearLayout
android:layout_width="420dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:background="@drawable/shape_bg_write"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:text="提示"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_hint_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="20dp"
tools:text="test"
android:textColor="@color/black"
android:textSize="14sp" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginTop="12dp"
android:background="#E1E1E1" />
<TextView
android:id="@+id/btn_hint_next"
android:layout_width="170dp"
android:layout_height="36dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="@color/color_main"
android:gravity="center"
android:text="我知道了"
android:textColor="@color/white" />
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="1px"
android:layout_height="1px"
android:background="@color/transparent" />
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="1px"
android:layout_height="1px"
android:background="@color/transparent" />
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment