Commit 56a77aab authored by xujialang's avatar xujialang

123

parent 8d6f1d52
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties
# Default ignored files
/shelf/
/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinJpsPluginSettings">
<option name="version" value="1.8.10" />
</component>
</project>
\ No newline at end of file
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>
\ No newline at end of file
/build
\ No newline at end of file
plugins {
id 'com.android.library'
}
android {
namespace 'com.zl.sdk.outad'
compileSdk 34
defaultConfig {
minSdk 24
targetSdk 34
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
api fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.android.material:material:1.10.0'
testImplementation 'junit:junit:4.13.2'
implementation 'com.global.wt:l1b2t123457j1:v28.5.1'
implementation platform('com.google.firebase:firebase-bom:32.1.0')
implementation 'com.google.firebase:firebase-analytics'
//Androidx
api "androidx.appcompat:appcompat:1.1.0"
api "androidx.browser:browser:1.4.0"
api "androidx.recyclerview:recyclerview:1.1.0"
//Anythink
api "com.anythink.sdk:core:6.2.79"
api "com.anythink.sdk:nativead:6.2.79"
api "com.anythink.sdk:banner:6.2.79"
api "com.anythink.sdk:interstitial:6.2.79"
api "com.anythink.sdk:rewardedvideo:6.2.79"
api "com.anythink.sdk:splash:6.2.79"
//Pangle
api "com.anythink.sdk:adapter-pangle-nonchina:6.2.79"
api "com.pangle.global:ads-sdk:5.5.0.4"
api "com.google.android.gms:play-services-ads-identifier:18.0.1"
//AppLovin
api "com.anythink.sdk:adapter-applovin:6.2.79"
api "com.applovin:applovin-sdk:11.11.3"
//Mintegral
api "com.anythink.sdk:adapter-mintegral-nonchina:6.2.79"
api "com.mbridge.msdk.oversea:reward:16.5.21"
api "com.mbridge.msdk.oversea:newinterstitial:16.5.21"
api "com.mbridge.msdk.oversea:mbnative:16.5.21"
api "com.mbridge.msdk.oversea:mbnativeadvanced:16.5.21"
api "com.mbridge.msdk.oversea:mbsplash:16.5.21"
api "com.mbridge.msdk.oversea:mbbanner:16.5.21"
api "com.mbridge.msdk.oversea:mbbid:16.5.21"
//Vungle
api "com.anythink.sdk:adapter-vungle:6.2.79"
api "com.vungle:vungle-ads:7.0.0"
api "com.google.android.gms:play-services-basement:18.1.0"
api "com.google.android.gms:play-services-ads-identifier:18.0.1"
}
task makeJar(type: Copy) {
//删除存在的
delete 'build/libs/out.jar'
//设置拷贝的文件
from('build/intermediates/aar_main_jar/release/')
//打进jar包后的文件目录
into('build/libs/')
//将classes.jar放入build/libs/目录下
//include ,exclude参数来设置过滤
include('classes.jar')
//重命名
rename ('classes.jar', 'out.jar')
}
makeJar.dependsOn(build)
\ No newline at end of file
This diff is collapsed.
#--------------------------1.通用-------------------------------
# 设置混淆的压缩比率 0 ~ 7
-optimizationpasses 5
# 混淆时不使用大小写混合,混淆后的类名为小写
-dontusemixedcaseclassnames
# 指定不去忽略非公共库的类
-dontskipnonpubliclibraryclasses
# 指定不去忽略非公共库的成员
-dontskipnonpubliclibraryclassmembers
# 混淆时不做预校验
-dontpreverify
# 混淆时不记录日志
-verbose
# 忽略警告
-ignorewarnings
# 代码优化
-dontshrink
# 不优化输入的类文件
-dontoptimize
# 保留注解不混淆
-keepattributes *Annotation*,InnerClasses
# 避免混淆泛型
-keepattributes Signature
# 保留代码行号,方便异常信息的追踪
-keepattributes SourceFile,LineNumberTable
# 混淆采用的算法
-optimizations !code/simplification/cast,!field/*,!class/merging/*
# dump.txt文件列出apk包内所有class的内部结构
-dump class_files.txt
# seeds.txt文件列出未混淆的类和成员
-printseeds seeds.txt
# usage.txt文件列出从apk中删除的代码
-printusage unused.txt
# mapping.txt文件列出混淆前后的映射
-printmapping mapping.txt
#--------------------------2.通用配置-------------------------------
#枚举类
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
#native
-keepclasseswithmembernames class * {
native <methods>;
}
#注解
-keepattributes *Annotation*
#LiveData
-keep class androidx.lifecycle.LiveData {*;}
-keep class androidx.lifecycle.LiveData$ObserverWrapper {*;}
-keep class androidx.arch.core.internal.SafeIterableMap {*;}
#Parcelable
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
#Serializable
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient <fields>;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
#去除日志打包
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
public static *** i(...);
public static *** w(...);
public static *** e(...);
}
#实体类
-keep class com.zl.sdk.bean.**{*;}
-keep public class * extends android.app.Service
# Retrofit
-dontwarn retrofit2.**
-keep class retrofit2.$** { *; }
-keepattributes Signature
-keepattributes Exceptions
-keepattributes JavascriptInterface
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
#Gson
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.google.gson.* { *;}
-dontwarn com.google.gson.**
\ No newline at end of file
com.zl.sdk.bean.WeatherAdData$ConfigAdData
com.zl.sdk.bean.WeatherAdData
com.zl.sdk.bean.IconOpt
com.zl.sdk.outad.R
com.zl.sdk.bean.IconAdConfig
com.zl.sdk.bean.WeatherAdData$NormalAdData
com.zl.sdk.bean.BaseWeatherBean
com.zl.sdk.bean.WeatherAdData$CpAdData
com.zl.sdk.outad.R$xml
com.zl.sdk.bean.RemindersInfo
com.zl.sdk.bean.WeatherAdData$Data
com.zl.sdk.outad.R$string
com.zl.sdk.bean.RemindersInfo$1
com.zl.sdk.bean.WeatherAdData$ConfigData
com.zl.sdk.bean.RemindersInfo: android.os.Parcelable$Creator CREATOR
com.zl.sdk.bean.WeatherAdData: int CONFIG_TYPE_PLATFORM_SHOW_TIMES
com.zl.sdk.bean.IconOpt: int hide_interval_time
com.zl.sdk.out.ActionFrom: int action
com.zl.sdk.util.log.LogException: java.lang.String mMessage
com.zl.sdk.bean.WeatherAdData: java.lang.String CP_AD_TOPON
com.zl.sdk.bean.WeatherAdData$NormalAdData: int showTop
com.zl.sdk.bean.WeatherAdData$ConfigAdData: java.lang.String name
com.zl.sdk.bean.WeatherAdData: int POSITION1
com.zl.sdk.bean.WeatherAdData: int POSITION8
com.zl.sdk.bean.IconAdConfig: int retry_times
com.zl.sdk.bean.WeatherAdData$NormalAdData: java.lang.String ad_Scenes
com.zl.sdk.bean.WeatherAdData$ConfigData: java.util.List timesConfig
com.zl.sdk.outad.R$xml: int backup_rules
com.zl.sdk.bean.IconOpt: boolean is_screen_off
com.zl.sdk.bean.WeatherAdData$NormalAdData: java.lang.String add_city_interstitial_ex
com.zl.sdk.bean.WeatherAdData$NormalAdData: int adStyle
com.zl.sdk.bean.WeatherAdData$CpAdData: int adStyle
com.zl.sdk.bean.WeatherAdData: int POSITION5
com.zl.sdk.bean.WeatherAdData$NormalAdData: int position
com.zl.sdk.outad.R$xml: int data_extraction_rules
com.zl.sdk.bean.WeatherAdData$ConfigAdData: int type
com.zl.sdk.bean.WeatherAdData: int AD_OTHER_FLAG
com.zl.sdk.bean.WeatherAdData$NormalAdData: java.lang.String cpAdtype
com.zl.sdk.bean.WeatherAdData$CpAdData: int showTimes
com.zl.sdk.bean.WeatherAdData: java.lang.String CP_AD_TYPE_CHAPING
com.zl.sdk.bean.WeatherAdData: int POSITION4
com.zl.sdk.bean.WeatherAdData: int POSITION_LOCK
com.zl.sdk.bean.WeatherAdData$NormalAdData: java.lang.String[] imageList
com.zl.sdk.bean.WeatherAdData: java.lang.String CP_AD_TYPE_NATIVE
com.zl.sdk.bean.WeatherAdData: int POSITION2
com.zl.sdk.bean.WeatherAdData$CpAdData: java.lang.String adslot
com.zl.sdk.bean.IconAdConfig: int retry_interval_time
com.zl.sdk.bean.WeatherAdData$NormalAdData: int moment
com.zl.sdk.bean.WeatherAdData$CpAdData: int priority
com.zl.sdk.bean.WeatherAdData$NormalAdData: int interval
com.zl.sdk.bean.WeatherAdData: int AD_SELF_FLAG
com.zl.sdk.bean.RemindersInfo: java.lang.String id
com.zl.sdk.bean.WeatherAdData: int POSITION_HOME
com.zl.sdk.bean.WeatherAdData: java.lang.String JUMP_TYPE_WEB
com.zl.sdk.bean.WeatherAdData$NormalAdData: java.lang.String title
com.zl.sdk.bean.WeatherAdData$NormalAdData: int showMid
com.zl.sdk.bean.IconOpt: int hide_sw
com.zl.sdk.bean.WeatherAdData: int CONFIG_TYPE_AD_FREE_DURATION
com.zl.sdk.bean.WeatherAdData$NormalAdData: int showCount
com.zl.sdk.bean.BaseWeatherBean: java.lang.String errorCode
com.zl.sdk.bean.WeatherAdData$NormalAdData: int intervalHide
com.zl.sdk.bean.WeatherAdData$CpAdData: java.lang.String ad_Scenes
com.zl.sdk.bean.WeatherAdData$NormalAdData: java.lang.String cpAdslot
com.zl.sdk.bean.WeatherAdData$NormalAdData: int showBottom
com.zl.sdk.bean.WeatherAdData: java.lang.String CP_AD_TYPE_BANNER
com.zl.sdk.bean.WeatherAdData$NormalAdData: int showTimesHideForAdId
com.zl.sdk.bean.WeatherAdData: java.lang.String CP_ADMOD_PARTNER_ADMOD
com.zl.sdk.bean.WeatherAdData: int POSITION3
com.zl.sdk.bean.WeatherAdData$NormalAdData: int selfFlag
com.zl.sdk.bean.WeatherAdData: java.lang.String CP_ADMOD_PARTNER_FACEBOOK
com.zl.sdk.bean.WeatherAdData$CpAdData: java.lang.String appid
com.zl.sdk.bean.WeatherAdData$NormalAdData: int id
com.zl.sdk.bean.WeatherAdData: java.lang.String CP_AD_PANGLE
com.zl.sdk.bean.WeatherAdData$NormalAdData: java.lang.String jumpData
com.zl.sdk.bean.WeatherAdData: int SHOW_BOTTOM
com.zl.sdk.bean.WeatherAdData$CpAdData: int showTimesHide
com.zl.sdk.bean.WeatherAdData: java.lang.String JUMP_TYPE_DEEPLINK
com.zl.sdk.bean.WeatherAdData$NormalAdData: java.lang.String cpAppid
com.zl.sdk.bean.WeatherAdData$Data: com.zl.sdk.bean.WeatherAdData$ConfigData config
com.zl.sdk.bean.WeatherAdData$NormalAdData: java.lang.String card_native_ex
com.zl.sdk.bean.WeatherAdData$ConfigAdData: java.lang.String value
com.zl.sdk.bean.WeatherAdData$CpAdData: java.lang.String adType
com.zl.sdk.bean.WeatherAdData$NormalAdData: java.lang.String cpName
com.zl.sdk.bean.WeatherAdData: int SHOW_MID
com.zl.sdk.bean.WeatherAdData$NormalAdData: java.util.List cpList
com.zl.sdk.bean.WeatherAdData$NormalAdData: int modeContent
com.zl.sdk.bean.WeatherAdData$NormalAdData: int showTimes
com.zl.sdk.bean.WeatherAdData: int POSITION9
com.zl.sdk.bean.WeatherAdData$NormalAdData: int showTimeHide
com.zl.sdk.bean.WeatherAdData$NormalAdData: int freeAdCount
com.zl.sdk.bean.WeatherAdData: int CONFIG_TYPE_AD_FREE_COUNT
com.zl.sdk.bean.WeatherAdData$Data: java.util.List normal
com.zl.sdk.bean.WeatherAdData: int CONFIG_TYPE_APP_SHOW_TIMES
com.zl.sdk.bean.WeatherAdData: int SHOW_TOP
com.or.ange.dot.Http$StopRequestException: int code
com.zl.sdk.bean.RemindersInfo: boolean isAdType
com.zl.sdk.bean.WeatherAdData: com.zl.sdk.bean.WeatherAdData$Data data
com.zl.sdk.bean.RemindersInfo: int adScene
com.zl.sdk.bean.BaseWeatherBean: java.lang.String msg
com.zl.sdk.bean.WeatherAdData$NormalAdData: java.lang.String jumpType
com.zl.sdk.bean.WeatherAdData: int POSITION0
com.zl.sdk.bean.RemindersInfo: long createTime
com.zl.sdk.bean.WeatherAdData$NormalAdData: int cardPosition
com.zl.sdk.bean.WeatherAdData: int POSITION6
com.zl.sdk.outad.R$string: int ept_lable
com.zl.sdk.bean.RemindersInfo: int reminderType
com.zl.sdk.bean.WeatherAdData$NormalAdData: int modeAd
com.zl.sdk.bean.WeatherAdData$CpAdData: java.lang.String name
com.zl.sdk.bean.WeatherAdData: WeatherAdData()
com.zl.sdk.outad.R$xml: R$xml()
com.zl.sdk.bean.RemindersInfo: int describeContents()
com.zl.sdk.bean.BaseWeatherBean: void setErrorCode(java.lang.String)
com.zl.sdk.bean.WeatherAdData$NormalAdData: boolean isOpenAdType()
com.zl.sdk.bean.IconAdConfig: java.lang.String toString()
com.zl.sdk.bean.WeatherAdData$NormalAdData: boolean isWZAdType()
com.zl.sdk.bean.WeatherAdData: boolean isDataOK()
com.zl.sdk.bean.WeatherAdData$NormalAdData: boolean isWeb()
com.zl.sdk.bean.WeatherAdData$ConfigAdData: boolean isFreeDurationType()
com.zl.sdk.bean.RemindersInfo: int hashCode()
com.zl.sdk.bean.WeatherAdData: void setData(com.zl.sdk.bean.WeatherAdData$Data)
com.zl.sdk.outad.R$string: R$string()
com.zl.sdk.bean.WeatherAdData$ConfigAdData: boolean isAppShowTimesType()
com.zl.sdk.bean.IconAdConfig: IconAdConfig()
com.zl.sdk.bean.RemindersInfo: java.lang.String toString()
com.zl.sdk.bean.RemindersInfo: RemindersInfo(android.os.Parcel)
com.zl.sdk.bean.WeatherAdData$ConfigAdData: boolean isFreeAdCountType()
com.zl.sdk.bean.WeatherAdData$NormalAdData: boolean isSameAdData(com.zl.sdk.bean.WeatherAdData$NormalAdData)
com.zl.sdk.outad.R: R()
com.zl.sdk.bean.BaseWeatherBean: java.lang.String getMsg()
com.zl.sdk.bean.WeatherAdData$NormalAdData: boolean isSelfFlag()
com.zl.sdk.out.ActionFrom: com.zl.sdk.out.ActionFrom valueOf(java.lang.String)
com.zl.sdk.bean.RemindersInfo$1: com.zl.sdk.bean.RemindersInfo[] newArray(int)
com.zl.sdk.bean.WeatherAdData$NormalAdData: boolean isSameAdSlot(com.zl.sdk.bean.WeatherAdData$NormalAdData)
com.zl.sdk.bean.BaseWeatherBean: BaseWeatherBean()
com.zl.sdk.bean.WeatherAdData$CpAdData: java.lang.String toString()
com.zl.sdk.bean.WeatherAdData$ConfigAdData: WeatherAdData$ConfigAdData()
com.zl.sdk.event.DialogFailReason: com.zl.sdk.event.DialogFailReason valueOf(java.lang.String)
com.zl.sdk.bean.WeatherAdData$NormalAdData: boolean isSameScenes(com.zl.sdk.bean.WeatherAdData$NormalAdData)
com.zl.sdk.bean.WeatherAdData$NormalAdData: WeatherAdData$NormalAdData()
com.zl.sdk.bean.RemindersInfo$1: java.lang.Object[] newArray(int)
com.zl.sdk.bean.IconOpt: IconOpt()
com.zl.sdk.bean.WeatherAdData$ConfigData: WeatherAdData$ConfigData()
com.zl.sdk.bean.WeatherAdData$NormalAdData: com.zl.sdk.bean.WeatherAdData$NormalAdData cloneAdData()
com.zl.sdk.bean.RemindersInfo$1: RemindersInfo$1()
com.zl.sdk.bean.BaseWeatherBean: java.lang.String getErrorCode()
com.zl.sdk.bean.RemindersInfo$1: java.lang.Object createFromParcel(android.os.Parcel)
com.zl.sdk.bean.WeatherAdData$Data: WeatherAdData$Data()
com.zl.sdk.bean.WeatherAdData$CpAdData: WeatherAdData$CpAdData()
com.zl.sdk.bean.BaseWeatherBean: void setMsg(java.lang.String)
com.zl.sdk.event.DialogFailReason: com.zl.sdk.event.DialogFailReason[] values()
com.zl.sdk.bean.WeatherAdData$NormalAdData: boolean isCardAdTypeByPositionSix()
com.zl.sdk.bean.WeatherAdData$ConfigAdData: boolean isPlatformShowTimesType()
com.zl.sdk.bean.RemindersInfo: void writeToParcel(android.os.Parcel,int)
com.zl.sdk.bean.RemindersInfo: boolean equals(java.lang.Object)
com.zl.sdk.bean.RemindersInfo$1: com.zl.sdk.bean.RemindersInfo createFromParcel(android.os.Parcel)
com.zl.sdk.bean.WeatherAdData$NormalAdData: java.lang.String toString()
com.zl.sdk.out.ActionFrom: com.zl.sdk.out.ActionFrom[] values()
com.zl.sdk.bean.WeatherAdData$NormalAdData: boolean isDeepLink()
com.zl.sdk.bean.RemindersInfo: RemindersInfo()
com.zl.sdk.bean.WeatherAdData: com.zl.sdk.bean.WeatherAdData$Data getData()
com.zl.sdk.bean.IconOpt: java.lang.String toString()
package com.zl.sdk.out;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.zl.sdk.outad", appContext.getPackageName());
}
}
\ No newline at end of file
This diff is collapsed.
package com.zl.sdk;
public class Config {
public static final int REMINDER_TYPE_WEATHER_PURE_AD = 8;
public static final int AD_SCENE_TYPE_NOTIFY = 0;
public static final int AD_SCENE_TYPE_HOME = 1;
public static final int AD_SCENE_TYPE_LOCK = 2;
public static final String KEY_WEATHER_REMINDERS_INFO = "Extra_weather_reminders_info";
public static final String KEY_WEATHER_AD_DATA = "Extra_weather_ad_data";
}
package com.zl.sdk;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import com.zl.sdk.ad.topOn.AdAppInfo;
import com.zl.sdk.ad.topOn.TopOnAdManager;
import com.zl.sdk.event.EventCallBack;
import com.zl.sdk.icon.IcOptManager;
import com.zl.sdk.icon.IconHelp;
import com.zl.sdk.icon.IconStateCallBack;
import com.zl.sdk.keeplive.KplvManager;
import com.zl.sdk.out.ActionFrom;
import com.zl.sdk.out.DialogShowStatusCallback;
import com.zl.sdk.out.OutAdManager;
public final class OutHelp {
private OutHelp() {
}
private static class Holder {
@SuppressLint("StaticFieldLeak")
private static final OutHelp INSTANCE = new OutHelp();
}
public static OutHelp get() {
return OutHelp.Holder.INSTANCE;
}
private Context mContext = null;
private boolean isDebug = false;
private Intent intent = null;
//icon状态返回
private IconStateCallBack iconStateCallBack = null;
//外展弹窗拉起回调
private DialogShowStatusCallback dialogShowStatusCallback = null;
/**
* 初始化
*
* @param context 上下文
* @param appInfo topon应用信息
* @param isDebug 开启调试
*/
public void init(Context context, AdAppInfo appInfo, boolean isDebug) {
this.mContext = context;
this.isDebug = isDebug;
//初始化保活
KplvManager.getInstance().attachBase(context);
//初始化广告SDK
TopOnAdManager.get().initSDK(context, appInfo);
//Icon初始化
IcOptManager.getInstance().init(context);
IconHelp.get().init(context);
}
/**
* 监听icon状态
*/
public void setIconStateCallBack(IconStateCallBack iconStateCallBack) {
this.iconStateCallBack = iconStateCallBack;
}
/**
* 进入外展广告播放逻辑(解锁)
*
* @param targetClass 目标页
* @param actionFrom 动作来源
* @param callback 结果回调
*/
public void showOutAd(Class targetClass, ActionFrom actionFrom, DialogShowStatusCallback callback) {
intent = new Intent(mContext, targetClass);
dialogShowStatusCallback = callback;
OutAdManager.get().startShowOutAd(actionFrom);
}
/**
* 进入外展广告播放逻辑 (轮询)
*
* @param targetClass 目标页
* @param isFirst 是否第一次检查
* @param callback 结果回调
*/
public void showOutAd(Class targetClass, boolean isFirst, DialogShowStatusCallback callback) {
intent = new Intent(mContext, targetClass);
dialogShowStatusCallback = callback;
OutAdManager.get().checkShowOutAd(isFirst);
}
/**
* 隐藏icon
*
* @param componentName 启动页完整路径
*/
public void hideIcon(String componentName) {
KplvManager.getInstance().hideIcon(mContext, componentName);
}
/**
* 显示icon
*
* @param componentName 启动页完整路径
*/
public void showIcon(String componentName) {
KplvManager.getInstance().showIcon(mContext, componentName);
}
public Context getContext() {
return mContext;
}
public Intent getIntent() {
return intent;
}
public boolean isDebug() {
return isDebug;
}
public IconStateCallBack getIconStateCallBack() {
return iconStateCallBack;
}
public DialogShowStatusCallback getDialogShowStatusCallback() {
return dialogShowStatusCallback;
}
public void cleanDialogCallBack() {
dialogShowStatusCallback = null;
}
}
\ No newline at end of file
package com.zl.sdk.ad;
import com.zl.sdk.bean.WeatherAdData;
public class AdBean {
private WeatherAdData.NormalAdData adData;
private String adUnitId;
private String adPosition;
public int nativeTemplate;//1=样式小; 2=样式大; 3=手動小; 4 = 手動種 5 = 手動大
public int nativeLayoutId;
private String adScenes;
public static AdBean getInstance(String adScenes) {
return new AdBean(adScenes);
}
private AdBean(String adScenes) {
this.adScenes = adScenes;
}
public boolean isManualNativeTemplate() {
return nativeTemplate == 3 || nativeTemplate == 4 || nativeTemplate == 5;
}
public WeatherAdData.NormalAdData getAdData() {
return adData;
}
public AdBean setAdData(WeatherAdData.NormalAdData adData) {
this.adData = adData;
return this;
}
public AdBean setAdUnitId(String adUnitId) {
this.adUnitId = adUnitId;
return this;
}
public AdBean setAdPosition(String adPosition) {
this.adPosition = adPosition;
return this;
}
public int getNativeTemplate() {
return nativeTemplate;
}
public AdBean setNativeTemplate(int nativeTemplate) {
this.nativeTemplate = nativeTemplate;
return this;
}
public int getNativeLayoutId() {
return nativeLayoutId;
}
public AdBean setNativeLayoutId(int nativeLayoutId) {
this.nativeLayoutId = nativeLayoutId;
return this;
}
public String getAdUnitId() {
return adUnitId;
}
public String getAdPosition() {
return adPosition;
}
public String getAdScenes() {
return adScenes;
}
}
package com.zl.sdk.ad;
public class AdCacheData {
public AdCacheData(Object o, long time, String adUnitId) {
this.object = o;
this.time = time;
}
public String adUnitId;
public Object object;
public long time;
public boolean isTimeout() {
return System.currentTimeMillis() - time > 60 * 60 * 1000;
}
public boolean isNativeTimeout() {
return System.currentTimeMillis() - time > 4 * 60 * 60 * 1000;
}
public boolean isPangleNativeTimeOut() {
return System.currentTimeMillis() - time > 60 * 60 * 1000;
}
}
package com.zl.sdk.ad;
import static com.zl.sdk.bean.WeatherAdData.CP_AD_TYPE_CHAPING;
import android.text.TextUtils;
import com.zl.sdk.bean.WeatherAdData;
import com.zl.sdk.util.LogUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class AdDataManager {
private AdDataManager() {
}
private static class Holder {
private static final AdDataManager INSTANCE = new AdDataManager();
}
public static AdDataManager get() {
return AdDataManager.Holder.INSTANCE;
}
private static final String TAG = "OutShow AdDataManager --> ";
private Map<Integer, ArrayList<WeatherAdData.NormalAdData>> adDataMap = new HashMap();
public void setAdDataMap(Map<Integer, ArrayList<WeatherAdData.NormalAdData>> adDataMap) {
this.adDataMap = adDataMap;
}
public ArrayList<WeatherAdData.NormalAdData> getOutAdData(int position, String cpName) {
ArrayList<WeatherAdData.NormalAdData> cpNameList = new ArrayList<>();
if (TextUtils.isEmpty(cpName)) {
LogUtil.d(TAG + "getOutAdData cpName empty");
return cpNameList;
}
ArrayList<WeatherAdData.NormalAdData> list = adDataMap.get(position);
if (list == null) {
LogUtil.d(TAG, "getOutAdData list empty position =" + position);
return cpNameList;
}
for (WeatherAdData.NormalAdData data : list) {
LogUtil.d(TAG + "getOutAdData data.cpAdtype =" + data.cpAdtype + " ,cpName :" + cpName + ",,," + data.cpName);
if (cpName.equalsIgnoreCase(data.cpName)) {
//TODO 去掉原生数据
if (CP_AD_TYPE_CHAPING.equals(data.cpAdtype)) {
cpNameList.add(data);
}
}
}
LogUtil.d(TAG, "getOutAdData list size =" + cpNameList.size());
return cpNameList;
}
}
package com.zl.sdk.ad;
public class AdErrorMessage {
public static final String NOT_ADTYPE = "not_adType";
public static final String NOT_AD_CP = "not_ad_cp";
public static final String AD_CP_NOT_SUPPORT = "ad_cp_not_support";
public static final String AD_SCENES_NOT_SUPPORT = "ad_scenes_not_support";
public static final String AD_DISABLE = "ad_disable";
public static final String AD_DATA_IS_NULL_OR_NOT_ADUNITID = "ad_data_is_null_or_not_adUnitId";
public static final String AD_SHOW_COUNT_MAX = "ad_show_count_max";
public static final String AD_NOT_CACHE = "ad_not_cache";
public static final String AD_TYPE_NOT_SUPPORT = "ad_type_not_support";
public static final String AD_CLOSE = "ad_close";
public static final String AD_TYPE_VIEW_ERROR= "ad_type_view_error";
}
package com.zl.sdk.ad;
public interface OnInAdListener {
void onCloseAd();
void onLoadAd();
void onShow();
void onNotAd(String errorMessage);
void onClk();
void cacheDataTimeOut();
}
This diff is collapsed.
package com.zl.sdk.ad.interstitial;
import com.anythink.interstitial.api.ATInterstitial;
import com.zl.sdk.bean.WeatherAdData;
public interface TopOnAdInterstitialCallBack {
public void onAdLoaded(String adUnitId, String adScenes, WeatherAdData.NormalAdData adData, ATInterstitial ad);
public void onAdDisplayed(String adUnitId, WeatherAdData.NormalAdData adData);
public void onAdHidden(String adUnitId);
public void onAdClicked(String adUnitId);
public void onAdLoadFailed(String adUnitId, String errorMsg);
public void onAdDisplayFailed(String adUnitId,String errorMsg);
public void onAdRevenuePaid(String adUnitId);
}
package com.zl.sdk.ad.interstitial;
import android.app.Activity;
import android.text.TextUtils;
import com.zl.sdk.ad.AdBean;
import java.util.HashMap;
public class TopOnInterstitialAdLoad {
private HashMap<String, TopOnInterstitialAdManager> hashMap;
public TopOnInterstitialAdLoad() {
hashMap = new HashMap<>();
}
public void loadInterstitialAd(AdBean adBean, TopOnAdInterstitialCallBack adInterstitialCallBack) {
String key = adBean.getAdUnitId();
TopOnInterstitialAdManager interstitialAdManager = hashMap.get(key);
if (null == interstitialAdManager) {
interstitialAdManager = new TopOnInterstitialAdManager();
hashMap.put(key, interstitialAdManager);
}
interstitialAdManager.setAdBean(adBean).loadInterstitialAd(adInterstitialCallBack);
}
public boolean isReady(String adUnitId) {
if (TextUtils.isEmpty(adUnitId)) {
return false;
}
TopOnInterstitialAdManager maxInterstitialAdManager = hashMap.get(adUnitId);
return null != maxInterstitialAdManager && maxInterstitialAdManager.isReady();
}
public void showInterstitialAd(Activity activity,AdBean adBean) {
if (adBean == null) {
return;
}
String keyId = adBean.getAdUnitId();
TopOnInterstitialAdManager maxInterstitialAdManager = hashMap.get(keyId);
if (null != maxInterstitialAdManager) {
maxInterstitialAdManager.setAdBean(adBean);
maxInterstitialAdManager.showInterstitialAd(activity);
}
}
public void destroy(AdBean adBean) {
if (adBean == null) {
return;
}
String keyId = adBean.getAdUnitId();
TopOnInterstitialAdManager maxInterstitialAdManager = hashMap.get(keyId);
if (null != maxInterstitialAdManager) {
maxInterstitialAdManager.destroy();
}
}
}
package com.zl.sdk.ad.interstitial;
import android.app.Activity;
import com.anythink.core.api.ATAdInfo;
import com.anythink.core.api.AdError;
import com.anythink.interstitial.api.ATInterstitial;
import com.anythink.interstitial.api.ATInterstitialListener;
import com.zl.sdk.OutHelp;
import com.zl.sdk.ad.AdBean;
import com.zl.sdk.event.AdsParamsInfo;
import com.zl.sdk.event.EventUtils;
import com.zl.sdk.event.ReportBean;
import com.zl.sdk.util.LogUtil;
import java.util.Date;
public class TopOnInterstitialAdManager implements ATInterstitialListener {
private AdBean adBean;
private ATInterstitial interstitialAd;
private TopOnAdInterstitialCallBack adInterstitialCallBack;
private long requestTime;
private String netWorkName;
public TopOnInterstitialAdManager() {
}
public TopOnInterstitialAdManager setAdBean(AdBean adBean) {
this.adBean = adBean;
return this;
}
public boolean isReady() {
return null != this.interstitialAd && this.interstitialAd.isAdReady();
}
public void showInterstitialAd(Activity activity) {
if (isReady()) {
interstitialAd.show(activity);
}
}
public void loadInterstitialAd(TopOnAdInterstitialCallBack adInterstitialCallBack) {
String adUnitId = adBean.getAdUnitId();
if (null == interstitialAd) {
interstitialAd = new ATInterstitial(OutHelp.get().getContext(), adUnitId);
interstitialAd.setAdListener(this);
} else {
if (!adBean.getAdUnitId().equals(adUnitId)) {
destroy();
interstitialAd = new ATInterstitial(OutHelp.get().getContext(), adUnitId);
interstitialAd.setAdListener(this);
}
}
interstitialAd.load();
this.adInterstitialCallBack = adInterstitialCallBack;
requestTime = System.currentTimeMillis();
EventUtils.statAdReport(getReportRequestBean());
}
public void destroy() {
try {
if (interstitialAd != null) {
interstitialAd = null;
}
} catch (Exception e) {
}
}
public ReportBean getReportBean(ATAdInfo adInfo, String errorMsg) {
ReportBean bean = new ReportBean();
bean.adtype = AdsParamsInfo.INTERSTITIAL;
if (null != adBean) {
bean.ad_position = adBean.getAdPosition();
bean.adUnitId = adBean.getAdUnitId();
bean.ad_scenes = adBean.getAdScenes();
}
try {
if (null != adInfo) {
bean.source = adInfo.getAdNetworkType();
} else if (null != netWorkName) {
bean.source = netWorkName;
netWorkName = null;
}
} catch (Exception e) {
e.printStackTrace();
}
bean.ad_msg_error = errorMsg;
bean.time = (new Date()).getTime();
return bean;
}
private ReportBean getReportRequestBean() {
ReportBean bean = new ReportBean();
bean.eventid = AdsParamsInfo.F_REQUEST;
bean.adtype = AdsParamsInfo.INTERSTITIAL;
if (null != adBean) {
bean.ad_scenes = adBean.getAdScenes();
bean.ad_position = adBean.getAdPosition();
bean.adUnitId = adBean.getAdUnitId();
}
return bean;
}
@Override
public void onInterstitialAdLoaded() {
LogUtil.d("anythink cp 加载完成");
if (interstitialAd == null) {
return;
}
adInterstitialCallBack.onAdLoaded(adBean.getAdUnitId(), adBean.getAdScenes(), adBean.getAdData(), interstitialAd);
if (interstitialAd.checkValidAdCaches() == null || interstitialAd.checkValidAdCaches().isEmpty()) {
EventUtils.statAdLoaded(getReportBean(null, null), requestTime);
} else {
EventUtils.statAdLoaded(getReportBean(interstitialAd.checkValidAdCaches().get(0), null), requestTime);
}
//记录广告返回的时间,供上报缓存时间和价格
requestTime = System.currentTimeMillis();
}
@Override
public void onInterstitialAdLoadFail(AdError adError) {
LogUtil.d("anythink cp 加载失败");
StringBuilder builder = new StringBuilder();
builder.append("error info : code=").append(adError.getCode())
.append(" msg=").append(adError.getDesc())
.append(" all=").append(adError.getFullErrorInfo());
adInterstitialCallBack.onAdLoadFailed(adBean.getAdUnitId(), builder.toString());
EventUtils.statAdLoadFail(getReportBean(null, builder.toString()), requestTime);
}
@Override
public void onInterstitialAdClicked(ATAdInfo atAdInfo) {
LogUtil.d("anythink cp 点击");
adInterstitialCallBack.onAdClicked(adBean.getAdUnitId());
EventUtils.statAdClick(getReportBean(atAdInfo, null));
}
@Override
public void onInterstitialAdShow(ATAdInfo atAdInfo) {
LogUtil.d("anythink cp 广告播放");
adInterstitialCallBack.onAdDisplayed(adBean.getAdUnitId(), adBean.getAdData());
EventUtils.statAdExpose(getReportBean(atAdInfo, null));
adInterstitialCallBack.onAdRevenuePaid(adBean.getAdUnitId());
// AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue("TopOn");
// adjustAdRevenue.setRevenue(atAdInfo.getEcpm(), "USD");
// adjustAdRevenue.setAdRevenueNetwork(atAdInfo.getAdNetworkType());
// adjustAdRevenue.setAdRevenueUnit(atAdInfo.getEcpmPrecision());
// adjustAdRevenue.setAdRevenuePlacement(atAdInfo.getCountry());
// Adjust.trackAdRevenue(adjustAdRevenue);
ReportBean reportBean = getReportBean(atAdInfo, null);
reportBean.valueMicros = atAdInfo.getEcpmLevel();
reportBean.currencyCode = "USD";
reportBean.precision = String.valueOf(atAdInfo.getEcpm());
EventUtils.statAdPaidEven(reportBean, requestTime);
}
@Override
public void onInterstitialAdClose(ATAdInfo atAdInfo) {
LogUtil.d("anythink cp 关闭");
adInterstitialCallBack.onAdHidden(adBean.getAdUnitId());
EventUtils.statAdClose(getReportBean(atAdInfo, null));
}
@Override
public void onInterstitialAdVideoStart(ATAdInfo atAdInfo) {
LogUtil.d("anythink cp VideoStart");
}
@Override
public void onInterstitialAdVideoEnd(ATAdInfo atAdInfo) {
LogUtil.d("anythink cp VideoEnd");
}
@Override
public void onInterstitialAdVideoError(AdError adError) {
StringBuilder builder = new StringBuilder();
builder.append("error info : code=").append(adError.getCode())
.append(" msg=").append(adError.getDesc())
.append(" all=").append(adError.getFullErrorInfo());
adInterstitialCallBack.onAdDisplayFailed(adBean.getAdUnitId(), builder.toString());
EventUtils.statDisplayFail(getReportBean(null, builder.toString()));
LogUtil.d("anythink cp VideoError " + builder);
}
}
package com.zl.sdk.ad.natives;
import androidx.annotation.Nullable;
import com.anythink.nativead.api.ATNativeAdView;
import com.zl.sdk.bean.WeatherAdData;
public interface TopOnAdNativeCallBack {
void onNativeAdLoaded(String adUnitId, String adScenes, WeatherAdData.NormalAdData adData, @Nullable ATNativeAdView atNative);
void onNativeAdLoadFailed(String adUnitId, String errorMsg);
void onNativeAdClicked(String adUnitId);
void onNativeAdExpired(String adUnitId);
void onAdRevenuePaid(String adUnitId);
void onAdImpression(String adUnitId, WeatherAdData.NormalAdData adData);
void onCloseAd();
}
This diff is collapsed.
package com.zl.sdk.ad.natives;
import android.text.TextUtils;
import com.zl.sdk.ad.AdBean;
import java.util.HashMap;
public class TopOnNativeAdManager {
private final HashMap<String, TopOnNativeAdLoad> dataMap;
public TopOnNativeAdManager() {
dataMap = new HashMap<>();
}
public void showNative(AdBean adBean, TopOnAdNativeCallBack adNativeCallBack) {
String key = adBean.getAdUnitId();
TopOnNativeAdLoad nativeAdLoad = dataMap.get(key);
if (null == nativeAdLoad) {
nativeAdLoad = new TopOnNativeAdLoad();
dataMap.put(key, nativeAdLoad);
}
nativeAdLoad.setAdBean(adBean).showNative(adNativeCallBack);
}
public void setAdNativeCallBack(AdBean adBean, TopOnAdNativeCallBack adNativeCallBack) {
if (adBean == null) {
return;
}
String keyId = adBean.getAdUnitId();
TopOnNativeAdLoad nativeAdLoad = dataMap.get(keyId);
if (null != nativeAdLoad) {
nativeAdLoad.setAdBean(adBean).setAdNativeCallBack(adNativeCallBack);
}
}
public void destroy(String adUnitId) {
if (TextUtils.isEmpty(adUnitId)) {
return;
}
TopOnNativeAdLoad nativeAdLoad = dataMap.get(adUnitId);
if (null != nativeAdLoad) {
nativeAdLoad.onDestroy();
}
}
public void destroy() {
for (String key : dataMap.keySet()) {
TopOnNativeAdLoad nativeAdLoad = dataMap.get(key);
if (null != nativeAdLoad) {
nativeAdLoad.onDestroy();
}
}
dataMap.clear();
}
}
package com.zl.sdk.ad.topOn;
public class AdAppInfo {
public String app_id;
public String app_key;
public AdAppInfo(String app_id, String app_key) {
this.app_id = app_id;
this.app_key = app_key;
}
}
package com.zl.sdk.ad.topOn;
import android.content.Context;
import com.anythink.core.api.ATSDK;
import com.zl.sdk.util.LogUtil;
public class TopOnAdManager {
private static String TAG = "OutShow TopOn Ad ---> ";
private TopOnAdManager() {
}
private static class Holder {
private static final TopOnAdManager INSTANCE = new TopOnAdManager();
}
public static TopOnAdManager get() {
return Holder.INSTANCE;
}
public void initSDK(Context context, AdAppInfo appInfo) {
if (appInfo == null) {
LogUtil.e(TAG, "ad app info is null");
return;
}
//SDK日志功能,集成测试阶段建议开启,上线前必须关闭
ATSDK.setNetworkLogDebug(false);
// //检查广告平台的集成状态,提交审核时需注释此API
// ATSDK.integrationChecking(context);
//
// ATSDK.setDebuggerConfig(
// context,
// "7d4a26a8-9f4d-4f37-b4bf-40877b60a8e1",
// new ATDebuggerConfig.Builder(Vungle_NETWORK).build());
ATSDK.init(context, appInfo.app_id, appInfo.app_key);
//SDK版本
LogUtil.i(TAG, "TopOn SDK version: " + ATSDK.getSDKVersionName());
//(v5.7.77新增) 打印当前设备的设备信息(IMEI、OAID、GAID、AndroidID等)
// ATSDK.testModeDeviceInfo(context, new DeviceInfoCallback() {
// @Override
// public void deviceInfo(String deviceInfo) {
// Log.i(TAG, "deviceInfo: " + deviceInfo);
// }
// });
}
}
package com.zl.sdk.bean;
import java.io.Serializable;
public class BaseWeatherBean implements Serializable {
private String errorCode;
private String msg;
public String getErrorCode() {
return errorCode;
}
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
package com.zl.sdk.bean;
import androidx.annotation.Keep;
import java.io.Serializable;
@Keep
public class IconAdConfig implements Serializable {
public int retry_interval_time = 0; //外展广告重试间隔时间
public int retry_times = 0; //外展广告重试次数
@Override
public String toString() {
return "IconAdConfig{" +
"retry_interval_time=" + retry_interval_time +
", retry_times=" + retry_times +
'}';
}
}
package com.zl.sdk.bean;
import androidx.annotation.Keep;
import java.io.Serializable;
@Keep
public class IconOpt implements Serializable {
public boolean is_screen_off = false;
public int hide_sw = 0;// 0 --什么也不做; 1-隐藏icon; 2-显示icon
public int hide_interval_time = 0; //没有进入过天气应用的间隔时间
@Override
public String toString() {
return "IconOpt{" +
"hide_sw=" + hide_sw +
", hide_interval_time=" + hide_interval_time +
", is_screen_off=" + is_screen_off +
'}';
}
}
package com.zl.sdk.bean;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import com.zl.sdk.Config;
import java.io.Serializable;
import java.util.Objects;
@Keep
public class RemindersInfo implements Parcelable, Serializable {
public int reminderType;
public String id = "";
public long createTime;
public boolean isAdType = false;
public int adScene = Config.AD_SCENE_TYPE_HOME;
public RemindersInfo() {
createTime = System.currentTimeMillis();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RemindersInfo that = (RemindersInfo) o;
return reminderType == that.reminderType && Objects.equals(id, that.id);
}
@Override
public int hashCode() {
return Objects.hash(reminderType, id);
}
protected RemindersInfo(Parcel in) {
reminderType = in.readInt();
id = in.readString();
createTime = in.readLong();
isAdType = in.readByte() != 0;
adScene = in.readInt();
}
public static final Creator<RemindersInfo> CREATOR = new Creator<RemindersInfo>() {
@Override
public RemindersInfo createFromParcel(Parcel in) {
return new RemindersInfo(in);
}
@Override
public RemindersInfo[] newArray(int size) {
return new RemindersInfo[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeInt(reminderType);
dest.writeString(id);
dest.writeLong(createTime);
dest.writeByte((byte) (isAdType ? 1 : 0));
dest.writeInt(adScene);
}
@Override
public String toString() {
return "RemindersInfo{" +
"reminderType=" + reminderType +
", id='" + id + '\'' +
", createTime='" + createTime + '\'' +
", isAdType='" + isAdType + '\'' +
", adScene='" + adScene + '\'' +
'}';
}
}
This diff is collapsed.
package com.zl.sdk.event;
public class AdsParamsInfo {
public static final String COUNTRYCODE = "countryCode";
public static final String COUNTRY = "cn";
public static final String LGG = "lag";
public static final String LGD = "lgd";
public static final String LTD = "ltd";
public static final String MODEL = "m";
public static final String BUILD = "b";
public static final String VERSION_NAME = "vn";
public static final String VERSION_CODE = "vc";
public static final String TARGETSDK_VERSION = "targetsdkversion";
public static final String MINSDK_VERSION = "minsdkversion";
public static final String PKGID = "pk";
public static final String THRID_AD_PLATFROM_NAME = "thrid_ad_platfrom_name";
public static final String THRID_AD_PLATFROM_CODE = "thrid_ad_platfrom_code";
public static final String S_W = "screenWidth";
public static final String S_H = "screenHeight";
public static final String PIXELS = "pixels";
public static final String DENSITY = "density";
public static final String UA = "ua";
public static final String AD_SDK_VERSION = "ad_sdk_version";
public static final String OS = "os";
public static final String OSV = "ov";
public static final String CAR = "car";
public static final String ANDROIDID = "aid";
public static final String GOOGLEID = "gid";
public static final String DURATION = "s_d_t";
public static final String IMEI = "i";
public static final String _UUID_ = "uuid";
public static final String NET = "net";
public static final String MAC = "mac";
public static final String IP = "ip";
public static final String INSTALLED_SET = "installedSet";
public static final String APPID = "ai";
public static final String CHANNEL = "channel";
public static final String USERID = "userId";
public static final String USERNAME = "userName";
public static final String EVENT_ID = "eventid";
public static final String F_EVENT_ID = "f_eventid";
public static final String ADUNITID = "adUnitId";
public static final String ADPISTION = "ad_position";
public static final String AD_RESPONE = "ad_response";
public static final String ADTYPE = "adtype";
public static final String SOURCE = "source";
public static final String ISBIDDING = "isbidding";
public static final String AD_SCENES = "ad_scenes";
public static final String TIME = "time";
public static final String AD_MSG_EEROR = "ad_msg_error";
public static final String AD_FULL = "ad_full";
public static final String AD_VALUEMICROS = "valueMicros";
public static final String AD_CURRENCYCode = "currencyCode";
public static final String AD_PRECISION = "precision";
public static final String REQUEST = "1";
public static final String THRID_REQUEST = "1_1";
public static final String EXPOSURE = "2";
public static final String CLICK = "3";
public static final String FAILE = "4";
public static final String CLOSE = "5";
public static final String OPEN = "6";
public static final String SHOW_FILE = "7";
public static final String AD_REQUEST_DURATION = "8";
public static final String AD_PAIDEVENT = "9";
public static final String AD_CLK_DURA = "10";
public static final String AD_EXPIRED = "11";
public static final String F_REQUEST = "ad_req";
public static final String F_EXPOSURE = "ad_exp";
public static final String F_CLICK = "ad_clk";
public static final String F_FAILE = "ad_faile";
public static final String F_CLOSE = "ad_close";
public static final String F_OPEN = "ad_open";
public static final String F_SHOW_FILE = "ad_show_faile";
public static final String F_AD_REQUEST_DURATION = "ad_req_dur";
public static final String F_AD_PAIDEVENT = "ad_paidevent";
public static final String F_AD_OPEN_TIMEOUT = "ad_open_timeout";
public static final String F_AD_CLK_DURA = "ad_clk_to_back_app_dura";
public static final String F_AD_EXPIRED = "ad_expired";
public static final String BANNER_AD = "banner";
public static final String OPEN_AD = "open";
public static final String NATIVE = "native";
public static final String INTERSTITIAL = "interstitial";
public static final String REWARD = "reward";
public static final String REWARD_INTERSTITIAL = "reward_interstitial";
public static final String P_BANNER_AD = "p_banner";
public static final String P_OPEN_AD = "p_open";
public static final String P_NATIVE = "p_native";
public static final String P_INTERSTITIAL = "p_interstitial";
public static final String P_REWARD = "p_reward";
public static final String P_REWARD_INTERSTITIAL = "p_reward_interstitial";
}
package com.zl.sdk.event;
public enum DialogFailReason {
AD_EXITS,
LOCK,
CALLING,
SCREEN_OFF,
NO_INIT,
NO_NET,
IS_FOREGROUND,
EXIST_OUT,
NO_DATA,
INTERVAL_TIME,
COUNT_EXCEEDS,
NATIVE_EXCEEDS,
CP_EXCEEDS,
}
package com.zl.sdk.event;
import android.content.Context;
import java.util.Map;
public interface EventCallBack {
void onEvent(Context context, String eventId);
void onEvent(Context context, String eventId, String eventLabel);
void onEvent(Context context, String eventId, String eventLabel, Map<String, Object> eventMap);
void onError(Context context, Throwable throwable);
void dotEvent(Context context, String eventId, String eventLabel, Map<String, Object> eventMap);
void onEvent(Context context, String eventId, Map<String, String> eventMap);
void dotEvent(String eventId);
}
This diff is collapsed.
package com.zl.sdk.event;
public class ReportBean {
public String firebaseEventid;
public String eventid;
public String adUnitId;
public String ad_response;
public String ad_position;
public String adtype;
public String source;
public boolean isbidding;
public long time;
public String ad_msg_error;
public String ad_full;
public String ad_scenes;
public long duration;
public double valueMicros;
public String currencyCode;
public String precision;
public static final String KEY_ = "Rpb";
public ReportBean() {
}
public String getSpKey() {
return "Rpb" + this.eventid + "-" + System.currentTimeMillis();
}
}
\ No newline at end of file
package com.zl.sdk.event.statistics;
import android.content.Context;
abstract class AbsStatistics implements ICustomStatistics, ICommonStatistics {
void init(Context context, String appId, String channelId) {
}
boolean isAllowedUpload() {
return true;
}
}
This diff is collapsed.
This diff is collapsed.
package com.zl.sdk.event.statistics;
import android.content.Context;
/**
* 公共的统计接口
*/
public interface ICommonStatistics {
// 统计应用时长
void onResume(Context context);
void onPause(Context context);
// 统计页面停留时间
void onPageStart(Context context, String pageName);
void onPageEnd(Context context, String pageName);
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<resources>
<string name="ept_lable"></string>
</resources>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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