Commit 29fa5a30 authored by mengcuiguang's avatar mengcuiguang

合并代码,解决冲突

parents b891f0ab e7c63517
......@@ -263,9 +263,9 @@ dependencies {
implementation(name: 'xrsdk-release_tbs', ext: 'aar')
implementation(name: 'xrsharesdk-release_tbs', ext: 'aar')
implementation(name: 'windAd-2.25.0', ext: 'aar')
implementation 'com.scwang.smart:refresh-layout-kernel:2.0.3'
implementation 'com.scwang.smart:refresh-header-classics:2.0.3'
implementation 'com.scwang.smart:refresh-footer-classics:2.0.3'
implementation 'com.scwang.smart:refresh-layout-kernel:2.0.3'
implementation 'com.scwang.smart:refresh-header-classics:2.0.3'
implementation 'com.scwang.smart:refresh-footer-classics:2.0.3'
// 枫岚
implementation(name: 'mh-adsdk', ext: 'aar')
implementation(name: 'mh-adsdk-ext', ext: 'aar')
......@@ -287,7 +287,7 @@ dependencies {
implementation(name: 'tzsdk_core-3.0.0-20200807131516-release', ext: 'aar')
implementation(name: 'tzsdk_reporter-3.0.0-20200807131516-release', ext: 'aar')
// 快手
implementation(name: 'kssdk-ad-3.3.6-publishRelease', ext: 'aar')
implementation(name: 'kssdk-all--3.3.16-publishRelease-9ffe2b94e', ext: 'aar')
// 抖音滑动LayoutManager
implementation(name: 'LayoutManagerGroup', ext: 'aar')
// 蘑菇星球
......@@ -327,7 +327,7 @@ dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$rootProject.coroutinesVersion"
implementation "com.google.dagger:hilt-android:$rootProject.hiltVersion"
implementation "androidx.hilt:hilt-lifecycle-viewmodel:$rootProject.hiltViewModelVersion"
implementation "com.scwang.smart:refresh-header-material:$rootProject.refresh_version"
implementation "com.scwang.smart:refresh-header-material:$rootProject.refresh_version"
implementation 'com.github.pdog18:dimension-extensions:1.0'
implementation 'com.github.zhpanvip:BannerViewPager:3.2.0'
api "androidx.navigation:navigation-fragment-ktx:$navigationVersion"
......@@ -347,14 +347,16 @@ dependencies {
implementation 'com.sensorsdata.analytics.android:SensorsAnalyticsSDK:4.4.3'
api 'org.aspectj:aspectjrt:1.9.5'
//小满
implementation ("com.bx:adsdk:1.4.2.2"){
exclude group:"com.miit.sdk"
implementation("com.bx:adsdk:1.4.2.2") {
exclude group: "com.miit.sdk"
transitive = true
changing = true
}
//愉悦赚
implementation(name: 'mduisdk_v3.1.0.18_support_msa_1.0.23', ext: 'aar')
implementation 'com.tencent.tbs.tbssdk:sdk:43903'
// OneWay
implementation(name: 'oneway-common-core-1.0.10', ext: 'aar')
// //芒果联盟
// implementation 'com.openppeace.mgmob:mgmob:1.3.5-alpha6'//MGMob
......
......@@ -39,7 +39,7 @@
<uses-permission android:name="com.mints.goodmoney.permission" />
<!-- 蘑菇星球 -->
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<!--小满-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
......@@ -166,8 +166,8 @@
android:screenOrientation="portrait" />
<activity
android:name=".ui.activitys.MokuGuideActivity"
android:theme="@style/AppTheme.NoActionBarTranslucent"
android:screenOrientation="portrait" />
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBarTranslucent" />
<activity
android:name=".ui.activitys.SettingsActivity"
android:screenOrientation="portrait" />
......@@ -342,6 +342,21 @@
tools:replace="android:resource" />
</provider>
<!-- OneWay -->
<activity
android:name="mobi.oneway.export.AdShowActivity"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
android:hardwareAccelerated="true"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
<provider
android:name="mobi.oneway.export.OWProvider"
android:authorities="${applicationId}.OWProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/ow_file_paths" />
</provider>
<!-- 鱼丸盒子广告 -->
<provider
......
......@@ -16,7 +16,7 @@ import com.mints.goodmoney.manager.KsManager;
import com.mints.goodmoney.manager.LiebaoManager;
import com.mints.goodmoney.manager.MhManager;
import com.mints.goodmoney.manager.MiitHelper;
import com.mints.goodmoney.manager.ReaderManager;
import com.mints.goodmoney.manager.OwManager;
import com.mints.goodmoney.manager.RsNewsManager;
import com.mints.goodmoney.manager.TtCsjAdManager;
import com.mints.goodmoney.manager.TzManager;
......@@ -24,7 +24,6 @@ import com.mints.goodmoney.manager.WnManager;
import com.mints.goodmoney.manager.XmManager;
import com.mints.goodmoney.manager.YlVideoManager;
import com.mints.goodmoney.manager.YlhAdManager;
import com.mints.goodmoney.manager.YyzManager;
import com.mints.goodmoney.net.LoanService;
import com.mints.goodmoney.utils.ForegroundOrBackground;
import com.mints.goodmoney.utils.LogUtil;
......@@ -114,7 +113,7 @@ public class MintsApplication extends MultiDexApplication {
private void thirdConfig() {
// 友盟SDK预初始化函数
// preInit预初始化函数耗时极少,不会影响App首次冷启动用户体验
UMConfigure.preInit(this,CommonUtils.getAppMetaData(MintsApplication.getContext(), "UMENG_KEY"), CommonUtils.getAppMetaData(MintsApplication.getContext(), "CHANNEL_NAME"));
UMConfigure.preInit(this, CommonUtils.getAppMetaData(MintsApplication.getContext(), "UMENG_KEY"), CommonUtils.getAppMetaData(MintsApplication.getContext(), "CHANNEL_NAME"));
// 初始化toast
initToast();
......@@ -137,6 +136,9 @@ public class MintsApplication extends MultiDexApplication {
// 枫岚广告
MhManager.INSTANCE.initMn(this);
// OneWay
OwManager.INSTANCE.init(this);
// 天卓珊瑚[INSTANCE是设置单例模式]
TzManager.INSTANCE.initTz(this);
......
package com.mints.goodmoney.ad.express
import android.annotation.SuppressLint
import android.content.DialogInterface
import android.text.TextUtils
import android.util.Log
import android.view.LayoutInflater
......@@ -95,7 +96,7 @@ object KsPreLoadExpressManager {
}
override fun onVideoPlayError(what: Int, extra: Int) {
LogUtil.d("KsPreLoadExpressManager","id=${what} extra=${extra}")
LogUtil.d("KsPreLoadExpressManager", "id=${what} extra=${extra}")
}
})
......@@ -191,6 +192,10 @@ object KsPreLoadExpressManager {
// Toast.makeText(mContext, "广告" + ad.appName + "展示", Toast.LENGTH_SHORT).show()
}
}
override fun handleDownloadDialog(p0: DialogInterface.OnClickListener?): Boolean {
return false
}
})
// 广告描述
......
......@@ -120,6 +120,8 @@ class KsVideoAdManager private constructor(activity: Activity) :
}
}
override fun onRequestResult(p0: Int) {}
})
......
package com.mints.goodmoney.ad.video
import android.app.Activity
import com.mints.goodmoney.ad.video.base.BaseVideoAd
import com.mints.goodmoney.ad.video.base.VideoAdStatusListener
import com.mints.goodmoney.common.AppConfig
import com.mints.goodmoney.common.Constant
import com.mints.goodmoney.manager.OwManager
import com.mints.goodmoney.manager.TrackManager
import mobi.oneway.export.Ad.OWRewardedAd
import mobi.oneway.export.AdListener.OWRewardedAdListener
import mobi.oneway.export.enums.OnewayAdCloseType
import mobi.oneway.export.enums.OnewaySdkError
private val TAG = OwVideoAdManager::class.java.simpleName
/**
* OneWay广告视频
*/
class OwVideoAdManager private constructor() :
BaseVideoAd() {
private var videoAdStatusListener: VideoAdStatusListener? = null
private var owRewardedAd: OWRewardedAd? = null
private var isClickScreen: Boolean = true
companion object {
private var _inst: OwVideoAdManager? = null
fun getInstance(): OwVideoAdManager? {
return if (_inst != null) {
_inst
} else {
_inst = OwVideoAdManager()
_inst
}
}
}
override fun loadAd(activity: Activity, curCoin: Int, carrierType: String, extraId: String?) {
isClickScreen = true
//创建激励视频事件监听器
val owRewardedAdListener: OWRewardedAdListener = object : OWRewardedAdListener {
override fun onAdReady() {
owRewardedAd?.show(activity)
}
override fun onAdShow(tag: String) {
TrackManager.getInstance().addCallImp(Constant.AD_SOURCE_OW, Constant.EVENT_TYPE_ZERO, "", "")
}
override fun onAdClick(tag: String) {
if (AppConfig.needReportClickAdEvent) {
TrackManager.getInstance().reportClickAdEvent()
}
TrackManager.getInstance().addCallImp(Constant.AD_SOURCE_OW, Constant.EVENT_TYPE_TWO, "", "")
if (isClickScreen) {
// 防止重复
TrackManager.getInstance().addCallImp(Constant.AD_SOURCE_OW, Constant.EVENT_TYPE_FOUR, "", "")
isClickScreen = false
}
videoAdStatusListener?.adDownload()
}
override fun onAdClose(tag: String, onewayVideoCloseType: OnewayAdCloseType) {
TrackManager.getInstance().reportAddCoinMsg(activity, getAdMapVO(carrierType, Constant.AD_SOURCE_OW, extraId, curCoin))
TrackManager.getInstance().addCallImp(Constant.AD_SOURCE_OW, Constant.EVENT_TYPE_THREE, "", "")
videoAdStatusListener?.adSuccess()
}
override fun onAdFinish(s: String, onewayAdCloseType: OnewayAdCloseType, s1: String) {
}
override fun onSdkError(onewaySdkError: OnewaySdkError, msg: String) {
TrackManager.getInstance().addCallImp(Constant.AD_SOURCE_OW, Constant.EVENT_TYPE_ONE, "999999", "emun:" + onewaySdkError.name + "msg:" + msg)
videoAdStatusListener?.adFail()
}
}
//创建激励视频对象
owRewardedAd = OWRewardedAd(activity, OwManager.REWARD_PID, owRewardedAdListener)
owRewardedAd?.loadAd()
}
fun setVideoAdStatusListener(videoAdStatusListener: VideoAdStatusListener?) {
this.videoAdStatusListener = videoAdStatusListener
}
override fun onDestroy() {
owRewardedAd?.destory()
owRewardedAd = null
}
}
\ No newline at end of file
......@@ -7,7 +7,6 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.text.TextUtils;
import com.mints.goodmoney.MintsApplication;
import com.mints.goodmoney.ad.video.base.VideoAdStatusListener;
import com.mints.goodmoney.common.AppConfig;
import com.mints.goodmoney.common.Constant;
......@@ -17,7 +16,6 @@ import com.mints.goodmoney.mvp.model.WeightBean;
import com.mints.goodmoney.service.AppInstallService;
import com.mints.goodmoney.utils.AppUtil;
import com.mints.goodmoney.utils.LogUtil;
import com.mints.goodmoney.utils.ToastUtil;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
......@@ -34,9 +32,6 @@ public class VideoAdingManager {
private static VideoAdingManager _inst;
// APP下载回调广播
private BroadcastReceiver mReceiverBroadcastReceiver = null;
private VideoAdingListener videoAdingListener;
private WnVideoAdManager wnVideoAdManager;
......@@ -46,7 +41,7 @@ public class VideoAdingManager {
private ShVideoAdManager shVideoAdManager;
private CsjFullVideoAdManager csjFullVideoAdManager;
private KsVideoAdManager ksVideoAdManager;
private RTAVideoAdManager rtaVideoAdManager;
private OwVideoAdManager owVideoAdManager;
private int wnWeight;
private int ylhWeight;
......@@ -55,21 +50,19 @@ public class VideoAdingManager {
private int shVideoWeight;
private int csjFullVideoWeight;
private int ksVideoWeight;
private int rtaVideoWeight;
private int owVideoWeight;
private ArrayList<WeightBean> weightList;
private ArrayList<String> currentRandomAdList;//当前随机出的广告渠道
private ArrayList<String> adList;//广告渠道
// 是否是高额视频任务
private boolean isHighWeight = false;
private boolean isTTVideoAd = false;
private int highIndex = 0;//0-穿山甲 1-优量汇 2-快手
private Activity activity;
private boolean isVideoAdDownload = false;// 是否点击广告下载 true-点击
private ArrayList<String> currentRandomAdList;//当前随机出的广告渠道
private ArrayList<String> adList;//广告渠道
public static VideoAdingManager getInstance(Activity activity) {
if (_inst == null) {
WeakReference<Activity> activityWeakReference = new WeakReference<>(activity);
......@@ -85,21 +78,24 @@ public class VideoAdingManager {
/**
* 初始化广告manager
*
* @param activity _
* @param activity
*/
private void init(Activity activity) {
this.activity = activity;
csjVideoAdManager = CsjVideoAdManager.getInstance(activity);
ylhVideoAdManager = YlhVideoAdManager.getInstance();
csjFullVideoAdManager = CsjFullVideoAdManager.getInstance(activity);
wnVideoAdManager = WnVideoAdManager.Companion.getInstance(activity);
mhVideoAdManager = MhVideoAdManager.Companion.getInstance(activity);
shVideoAdManager = ShVideoAdManager.Companion.getInstance(activity);
csjFullVideoAdManager = CsjFullVideoAdManager.getInstance(activity);
ksVideoAdManager = KsVideoAdManager.Companion.getInstance(activity);
rtaVideoAdManager = RTAVideoAdManager.Companion.getInstance(activity);
owVideoAdManager = OwVideoAdManager.Companion.getInstance();
weightList = new ArrayList<>();
}
// APP下载回调广播
private BroadcastReceiver mReceiverBroadcastReceiver = null;
private void registerBroad() {
if (AppConfig.isSuperTask) {
return;
......@@ -139,10 +135,15 @@ public class VideoAdingManager {
/**
* 初始化广告权重
*/
public void initAdWeight(int csjVideoWeight, int ylhWeight,
int wnWeight, int flVideoWeight,
int shVideoWeight, int csjFullVideoWeight,
int ksVideoWeight, int rtaVideoWeight) {
public void initAdWeight(
int csjVideoWeight,
int ylhWeight,
int wnWeight,
int flVideoWeight,
int shVideoWeight,
int csjFullVideoWeight,
int ksVideoWeight,
int owVideoWeight) {
this.csjVideoWeight = csjVideoWeight;
this.ylhWeight = ylhWeight;
this.wnWeight = wnWeight;
......@@ -150,13 +151,13 @@ public class VideoAdingManager {
this.shVideoWeight = shVideoWeight;
this.csjFullVideoWeight = csjFullVideoWeight;
this.ksVideoWeight = ksVideoWeight;
this.rtaVideoWeight = rtaVideoWeight;
this.owVideoWeight = owVideoWeight;
}
/**
* 根据类型加载对应视频(第一次加载)
*
* @param bean _
* @param bean
*/
public void loadAding(Activity activity, VideoAdingBean bean) {
WeakReference<Activity> activityWeakReference = new WeakReference<>(activity);
......@@ -167,14 +168,28 @@ public class VideoAdingManager {
loadAdVideo(getVideoAdType(), bean);
}
/**
* 加载失败优先级对应视频
*
* @param bean
*/
public void loadFailAding(Activity activity, VideoAdingBean bean) {
WeakReference<Activity> activityWeakReference = new WeakReference<>(activity);
this.activity = activityWeakReference.get();
isVideoAdDownload = false;
loadAdVideo(getNextFailAdType(), bean);
}
/**
* 根据广告优先级获取下一个
* <p>
* 穿山甲>优量汇>穿山甲全屏>快手>珊瑚>闪电盒子>枫岚(兜底)
* <p>
* 穿山甲>优量汇>快手>oneway>闪电盒子>穿山甲全屏>珊瑚>枫岚(兜底)
*/
private String getNextFailAdType() {
// 高额任务时 会为空
if (adList == null || currentRandomAdList == null) {
if (isHighWeight || adList == null || currentRandomAdList == null) {
return getHighWeight();
}
......@@ -194,19 +209,6 @@ public class VideoAdingManager {
return nextAdType;
}
/**
* 加载失败优先级对应视频
*
* @param bean _
*/
public void loadFailAding(Activity activity, VideoAdingBean bean) {
WeakReference<Activity> activityWeakReference = new WeakReference<>(activity);
this.activity = activityWeakReference.get();
isVideoAdDownload = false;
loadAdVideo(getNextFailAdType(), bean);
}
/**
* 获取广告类型配置
*/
......@@ -235,37 +237,58 @@ public class VideoAdingManager {
/**
* 高额任务广告类型
*
* @return _
* @return
*/
private String getHighWeight() {
// isTTVideoAd = !isTTVideoAd;
// if (isTTVideoAd) {
// return Constant.CSJ_VEDIO_AD;
// } else {
// return Constant.YLH_VEDIO_AD;
// }
String adType = "";
switch (highIndex) {
case 0:
highIndex = 1;
adType = Constant.CSJ_VEDIO_AD;
break;
case 1:
highIndex = 2;
adType = Constant.YLH_VEDIO_AD;
break;
case 2:
highIndex = 0;
adType = Constant.KS_VEDIO_AD;
break;
public String getHighWeight() {
int weight = 0;
if (weightList != null) {
weightList.clear();
}
return adType;
// 穿山甲
if (AppConfig.csjHighVideoAdCount > 0) {
weightList.add(new WeightBean(AppConfig.csjHighVideoAdCount, Constant.CSJ_VEDIO_AD));
weight = weight + AppConfig.csjHighVideoAdCount;
LogUtil.d(TAG, "高额任务 -> 权重值:csjVideoWeight:" + AppConfig.csjHighVideoAdCount);
}
// 优量汇
if (AppConfig.ylhHighVideoAdCount > 0) {
weightList.add(new WeightBean(AppConfig.ylhHighVideoAdCount, Constant.YLH_VEDIO_AD));
weight = weight + AppConfig.ylhHighVideoAdCount;
LogUtil.d(TAG, "高额任务 -> 权重值:ylhVideoWeight:" + AppConfig.ylhHighVideoAdCount);
}
// 快手
if (AppConfig.ksHighVideoAdCount > 0) {
weightList.add(new WeightBean(AppConfig.ksHighVideoAdCount, Constant.KS_VEDIO_AD));
weight = weight + AppConfig.ksHighVideoAdCount;
LogUtil.d(TAG, "高额任务 -> 权重值:ksVideoWeight:" + AppConfig.ksHighVideoAdCount);
}
// 权重随机
if (weightList != null && weightList.size() > 0 && weight > 0) {
LogUtil.d(TAG, "高额任务 -> 1、权重总值:" + weight);
Random r = new Random();
int randomWeight = r.nextInt(weight) + 1;
LogUtil.d(TAG, "高额任务 -> 2、权重随机值:" + randomWeight);
for (WeightBean weightBean : weightList) {
randomWeight -= weightBean.getWeight();
if (randomWeight <= 0) {
LogUtil.d(TAG, "高额任务 -> 3、权重结果:" + weightBean.getType());
return weightBean.getType();
}
}
}
return Constant.CSJ_VEDIO_AD;
}
/**
* 根据权重获取广告类型
*
* @return _
* @return
*/
private String getRandomWeight() {
if (currentRandomAdList == null) {
......@@ -281,8 +304,8 @@ public class VideoAdingManager {
weightList.clear();
}
int weight = 0;
// 穿山甲>优量汇>穿山甲全屏>快手>珊瑚>闪电盒子>枫岚(兜底)
// 若没有视频完成数,不加入权重计算范围内
// 穿山甲>优量汇>快手>oneway>闪电盒子>穿山甲全屏>珊瑚>枫岚(兜底)
if (AppConfig.csjVideoAdCount > 0) {
weightList.add(new WeightBean(csjVideoWeight, Constant.CSJ_VEDIO_AD));
weight = weight + csjVideoWeight;
......@@ -295,51 +318,51 @@ public class VideoAdingManager {
LogUtil.d(TAG, "权重值:ylhWeight:" + ylhWeight);
adList.add("b");
}
if (AppConfig.csjFullVideoAdCount > 0) {
weightList.add(new WeightBean(csjFullVideoWeight, Constant.CSJ_FULL_AD));
weight = weight + csjFullVideoWeight;
LogUtil.d(TAG, "权重值:csjFullVideoWeight:" + csjFullVideoWeight);
if (AppConfig.ksVideoAdCount > 0) {
weightList.add(new WeightBean(ksVideoWeight, Constant.KS_VEDIO_AD));
weight = weight + ksVideoWeight;
LogUtil.d(TAG, "权重值:ksWeight:" + ksVideoWeight);
adList.add("c");
}
if (AppConfig.owVideoAdCount > 0) {
weightList.add(new WeightBean(owVideoWeight, Constant.OW_VEDIO_AD));
weight = weight + owVideoWeight;
LogUtil.d(TAG, "权重值:owVideoWeight:" + owVideoWeight);
adList.add("d");
}
if (AppConfig.wnVideoAdCount > 0) {
weightList.add(new WeightBean(wnWeight, Constant.SDHZ_VEDIO_AD));
weight = weight + wnWeight;
LogUtil.d(TAG, "权重值:sdhzWeight:" + wnWeight);
adList.add("d");
adList.add("e");
}
if (AppConfig.csjFullVideoAdCount > 0) {
weightList.add(new WeightBean(csjFullVideoWeight, Constant.CSJ_FULL_AD));
weight = weight + csjFullVideoWeight;
LogUtil.d(TAG, "权重值:csjFullVideoWeight:" + csjFullVideoWeight);
adList.add("f");
}
if (AppConfig.shVideoAdCount > 0) {
weightList.add(new WeightBean(shVideoWeight, Constant.SH_VEDIO_AD));
weight = weight + shVideoWeight;
LogUtil.d(TAG, "权重值:shWeight:" + shVideoWeight);
adList.add("e");
}
if (AppConfig.ksVideoAdCount > 0) {
weightList.add(new WeightBean(ksVideoWeight, Constant.KS_VEDIO_AD));
weight = weight + ksVideoWeight;
LogUtil.d(TAG, "权重值:ksWeight:" + ksVideoWeight);
adList.add("f");
adList.add("g");
}
if (AppConfig.flVideoAdCount > 0) {
weightList.add(new WeightBean(flVideoWeight, Constant.FL_VEDIO_AD));
weight = weight + flVideoWeight;
LogUtil.d(TAG, "权重值:flVideoWeight:" + flVideoWeight);
adList.add("g");
}
if (AppConfig.rtaVideoAdCount > 0) {
weightList.add(new WeightBean(rtaVideoWeight, Constant.RTA_VEDIO_AD));
weight = weight + rtaVideoWeight;
LogUtil.d(TAG, "权重值:rtaWeight:" + rtaVideoWeight);
adList.add("h");
}
// 权重随机
if (weightList != null && weightList.size() > 0 && weight > 0) {
LogUtil.d(TAG, "1、权重总值:" + weight);
Random r = new Random();
int randomWeight = r.nextInt(weight) + 1;
LogUtil.d(TAG, "2、权重随机值:" + randomWeight);
// ToastUtil.show(MintsApplication.getContext(), "权重随机值:" + randomWeight);
// ToastUtil.show(MintsApplication.getContext(),"权重随机值:" + randomWeight);
for (WeightBean weightBean : weightList) {
randomWeight -= weightBean.getWeight();
if (randomWeight <= 0) {
......@@ -371,17 +394,12 @@ public class VideoAdingManager {
int wnAdCount = AppConfig.wnVideoAdCount;
int flVideoAdCount = AppConfig.flVideoAdCount;
int tzVideoAdCount = AppConfig.shVideoAdCount;
int csjFullVedioAdCount = AppConfig.csjFullVideoAdCount;
int ksVideoAdCount = AppConfig.ksVideoAdCount;
int csjFullVideoAdCount = AppConfig.csjFullVideoAdCount;
if (ylhAdCount <= 0 &&
csjVideoAdCount <= 0 &&
wnAdCount <= 0 &&
flVideoAdCount <= 0 &&
tzVideoAdCount <= 0 &&
csjFullVideoAdCount <= 0 &&
ksVideoAdCount <= 0) {
// showToast("今日视频已看完,请明天再来吧");
int owVideoAdCount = AppConfig.owVideoAdCount;
if (ylhAdCount <= 0 && csjVideoAdCount <= 0 && wnAdCount <= 0 && flVideoAdCount <= 0
&& tzVideoAdCount <= 0 && csjFullVedioAdCount <= 0 && ksVideoAdCount <= 0 && owVideoAdCount <= 0) {
return true;
}
return false;
......@@ -421,15 +439,10 @@ public class VideoAdingManager {
shVideoAdManager.onDestroy();
shVideoAdManager = null;
}
if (ksVideoAdManager != null) {
ksVideoAdManager.setVideoAdStatusListener(null);
ksVideoAdManager.onDestroy();
ksVideoAdManager = null;
}
if (rtaVideoAdManager != null) {
rtaVideoAdManager.setVideoAdStatusListener(null);
rtaVideoAdManager.onDestroy();
rtaVideoAdManager = null;
if (owVideoAdManager != null) {
owVideoAdManager.setVideoAdStatusListener(null);
owVideoAdManager.onDestroy();
owVideoAdManager = null;
}
if (mReceiverBroadcastReceiver != null) {
......@@ -745,30 +758,30 @@ public class VideoAdingManager {
});
ksVideoAdManager.loadAd(activity, bean.getCurCoin(), bean.getCarrierType(), bean.getExtraId());
} else if (TextUtils.equals(videoAdType, Constant.RTA_VEDIO_AD)) {
// RTA广告激励视频
if (rtaVideoAdManager == null) {
} else if (TextUtils.equals(videoAdType, Constant.OW_VEDIO_AD)) {
// oneway广告激励视频
if (owVideoAdManager == null) {
if (activity == null) {
if (videoAdingListener != null) {
videoAdingListener.videoAdingListenerError(Constant.RTA_VEDIO_AD);
videoAdingListener.videoAdingListenerError(Constant.OW_VEDIO_AD);
}
return;
}
rtaVideoAdManager = RTAVideoAdManager.Companion.getInstance(activity);
owVideoAdManager = OwVideoAdManager.Companion.getInstance();
}
rtaVideoAdManager.setVideoAdStatusListener(new VideoAdStatusListener() {
owVideoAdManager.setVideoAdStatusListener(new VideoAdStatusListener() {
@Override
public void adSuccess() {
AppConfig.rtaVideoAdCount--;
AppConfig.owVideoAdCount--;
if (videoAdingListener != null) {
videoAdingListener.videoAdingListenerSuccess(Constant.RTA_VEDIO_AD);
videoAdingListener.videoAdingListenerSuccess(Constant.OW_VEDIO_AD);
}
}
@Override
public void adFail() {
if (videoAdingListener != null) {
videoAdingListener.videoAdingListenerFail(Constant.RTA_VEDIO_AD);
videoAdingListener.videoAdingListenerFail(Constant.OW_VEDIO_AD);
}
}
......@@ -781,7 +794,7 @@ public class VideoAdingManager {
}
});
rtaVideoAdManager.loadAd(activity, bean.getCurCoin(), bean.getCarrierType(), bean.getExtraId());
owVideoAdManager.loadAd(activity, bean.getCurCoin(), bean.getCarrierType(), bean.getExtraId());
}
} catch (Exception e) {
e.printStackTrace();
......@@ -792,7 +805,8 @@ public class VideoAdingManager {
}
private String getCode(String adtype) {
String code = "g";
// 穿山甲>优量汇>快手>oneway>闪电盒子>穿山甲全屏>珊瑚>枫岚(兜底)
String code = "h";
switch (adtype) {
case Constant.CSJ_VEDIO_AD:
code = "a";
......@@ -800,23 +814,28 @@ public class VideoAdingManager {
case Constant.YLH_VEDIO_AD:
code = "b";
break;
case Constant.CSJ_FULL_AD:
case Constant.KS_VEDIO_AD:
code = "c";
break;
case Constant.SDHZ_VEDIO_AD:
case Constant.OW_VEDIO_AD:
code = "d";
break;
case Constant.SH_VEDIO_AD:
case Constant.SDHZ_VEDIO_AD:
code = "e";
break;
case Constant.KS_VEDIO_AD:
case Constant.CSJ_FULL_AD:
code = "f";
break;
case Constant.SH_VEDIO_AD:
code = "g";
break;
}
return code;
}
private String getAdtype(String code) {
//// 穿山甲>优量汇>快手>oneway>闪电盒子>穿山甲全屏>珊瑚>枫岚(兜底)
String adtype = Constant.FL_VEDIO_AD;
switch (code) {
case "a":
......@@ -826,16 +845,19 @@ public class VideoAdingManager {
adtype = Constant.YLH_VEDIO_AD;
break;
case "c":
adtype = Constant.CSJ_FULL_AD;
adtype = Constant.KS_VEDIO_AD;
break;
case "d":
adtype = Constant.SDHZ_VEDIO_AD;
adtype = Constant.OW_VEDIO_AD;
break;
case "e":
adtype = Constant.SH_VEDIO_AD;
adtype = Constant.SDHZ_VEDIO_AD;
break;
case "f":
adtype = Constant.KS_VEDIO_AD;
adtype = Constant.CSJ_FULL_AD;
break;
case "g":
adtype = Constant.SH_VEDIO_AD;
break;
}
return adtype;
......
......@@ -97,9 +97,28 @@ public class AppConfig {
*/
public static int ksVideoAdCount = 0;
/**
* rtaVideo 剩余广告播放数
* owVideo 剩余广告播放数
*/
public static int rtaVideoAdCount = 0;
public static int owVideoAdCount = 0;
// /**
// * rtaVideo 剩余广告播放数
// */
// public static int rtaVideoAdCount = 0;
/**
* 高额任务和超级翻倍 csjVideo 剩余广告播放数
*/
public static int csjHighVideoAdCount = 0;
/**
* 高额任务和超级翻倍 ylhVideo 剩余广告播放数
*/
public static int ylhHighVideoAdCount = 0;
/**
* 高额任务和超级翻倍 ksVideo 剩余广告播放数
*/
public static int ksHighVideoAdCount = 0;
/**
* 高额试玩任务标识
......
......@@ -157,6 +157,7 @@ object Constant {
const val AD_SOURCE_SH = "CORAL" //珊瑚天卓
const val AD_SOURCE_KS = "KS" //快手
const val AD_SOURCE_RTA = "RTA" //RTA
const val AD_SOURCE_OW = "OW" //OneWay
// 调用事件 0 成功 1失败 2点击 3-有效展示 4-去重
const val EVENT_TYPE_ZERO = "0"
......@@ -179,6 +180,8 @@ object Constant {
const val SH_VEDIO_AD = "SH_VEDIO_AD"
const val KS_VEDIO_AD = "KS_VEDIO_AD"
const val RTA_VEDIO_AD = "RTA_VEDIO_AD"
const val OW_VEDIO_AD = "OW_VEDIO_AD"
// 信息流广告类型
const val CSJ_EXPRESS_AD = "CSJ_EXPRESS_AD"
......
......@@ -23,6 +23,9 @@ object KsManager {
/* vedio-postid */
const val KS_AD_VEDIO_POSTID = 5746000022
/* 内容联盟id */
const val KS_CONTENT_POSTID = 5746000049
/**
* 初始化
*/
......
package com.mints.goodmoney.manager
import android.app.Application
import mobi.oneway.export.Ad.OnewaySdk
/**
* 描述:OneWay激励视频
* 作者:孟崔广
*/
object OwManager {
private const val PUBLISH_ID = "bf236dc4c17946cd"
const val REWARD_PID = "P9663XII5Q9VJM25"
/**
* 初始化
*/
fun init(application: Application) {
OnewaySdk.configure(application, PUBLISH_ID)
OnewaySdk.setDebugMode(true)
}
}
\ No newline at end of file
......@@ -27,7 +27,7 @@ object UserWeight {
data.vedioRules.corAl_VIDEO.rate,
data.vedioRules.csjfulL_VEDIO.rate,
data.vedioRules.kS_VEDIO.rate,
data.vedioRules.rtA_VEDIO.rate
data.vedioRules.oW_VEDIO.rate
)
LogUtil.d(TAG, "首页权重值:csjWeight:${data.vedioRules.csJ_VEDIO.rate} " +
"ylhWeight:${data.vedioRules.ylH_VEDIO.rate} " +
......@@ -35,7 +35,7 @@ object UserWeight {
"csjFullWeight:${data.vedioRules.csjfulL_VEDIO.rate} " +
"shWeight:${data.vedioRules.corAl_VIDEO.rate} " +
"flWeight:${data.vedioRules.fL_VEDIO.rate} " +
"rtaWeight:${data.vedioRules.rtA_VEDIO.rate} " +
"owWeight:${data.vedioRules.oW_VEDIO.rate} " +
"ksWeight:${data.vedioRules.kS_VEDIO.rate}"
)
// 广告视频数
......@@ -45,7 +45,7 @@ object UserWeight {
AppConfig.flVideoAdCount = data.vedioRules.fL_VEDIO.surplus
AppConfig.shVideoAdCount = data.vedioRules.corAl_VIDEO.surplus
AppConfig.ksVideoAdCount = data.vedioRules.kS_VEDIO.surplus
AppConfig.rtaVideoAdCount = data.vedioRules.rtA_VEDIO.surplus
AppConfig.owVideoAdCount = data.vedioRules.oW_VEDIO.surplus
AppConfig.csjFullVideoAdCount = data.vedioRules.csjfulL_VEDIO.surplus
LogUtil.d(TAG, "首页视频数:csjCount:${AppConfig.csjVideoAdCount} " +
"ylhCount:${AppConfig.ylhAdCount} " +
......@@ -53,7 +53,7 @@ object UserWeight {
"csjFullCount:${AppConfig.csjFullVideoAdCount} " +
"shCount:${AppConfig.shVideoAdCount} " +
"flCount:${AppConfig.flVideoAdCount} " +
"rtaCount:${AppConfig.rtaVideoAdCount} " +
"owCount:${AppConfig.owVideoAdCount} " +
"ksCount:${AppConfig.ksVideoAdCount}"
)
}
......
......@@ -89,6 +89,7 @@ public class DrawcashBean implements Serializable {
private int CORAL_VEDIO;
private int KS_VEDIO;
private int RTA_VEDIO;
private int OW_VEDIO;
public int getRTA_VEDIO() {
return RTA_VEDIO;
......@@ -125,6 +126,10 @@ public class DrawcashBean implements Serializable {
public int getKS_VEDIO() {
return KS_VEDIO;
}
public int getOW_VEDIO() {
return OW_VEDIO;
}
}
public class CashOutMoneyArrBean implements Serializable {
......
......@@ -13,6 +13,7 @@ public class UserTaskMsgBean implements Serializable {
private UserRiskAppsBean userRiskApps;
private AdcodeBean adcode_v1 = null;
private FlowAdRulesBean flowAdRules;
private HighRatePlanBean highRatePlan;
private String ip;
private String channel;
......@@ -135,4 +136,30 @@ public class UserTaskMsgBean implements Serializable {
public FlowAdRulesBean getFlowAdRules() {
return flowAdRules;
}
public HighRatePlanBean getHighRatePlan() {
return highRatePlan;
}
public void setHighRatePlan(HighRatePlanBean highRatePlan) {
this.highRatePlan = highRatePlan;
}
public static class HighRatePlanBean implements Serializable {
private int YLH;
private int KS;
private int CSJ;
public int getYLH() {
return YLH;
}
public int getKS() {
return KS;
}
public int getCSJ() {
return CSJ;
}
}
}
......@@ -12,6 +12,7 @@ public class VedioRulesBean implements Serializable {
private CORALVedioBean CORAL_VEDIO;
private KSVedioBean KS_VEDIO;
private RTAVedioBean RTA_VEDIO;
private OWVedioBean OW_VEDIO;
private boolean flVideoFlag;
private boolean vedioSleep;
......@@ -145,6 +146,23 @@ public class VedioRulesBean implements Serializable {
return RTA_VEDIO;
}
public OWVedioBean getOW_VEDIO() {
return OW_VEDIO;
}
public class OWVedioBean implements Serializable {
private int surplus;
private int rate;
public int getSurplus() {
return surplus;
}
public int getRate() {
return rate;
}
}
public void setRTA_VEDIO(RTAVedioBean RTA_VEDIO) {
this.RTA_VEDIO = RTA_VEDIO;
}
......
......@@ -108,6 +108,7 @@ public class AwardPresenter extends BasePresenter<AwardView> {
if (!TextUtils.isEmpty(MintsApplication.OAID)) {
vo.put("oaid", MintsApplication.OAID);
}
vo.put("ua", deviceInfo.getUserAgent());
AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo),
new BaseSubscriber<BaseResponse<UserBean>>() {
......
......@@ -153,7 +153,7 @@ public class DrawcashPresenter extends BasePresenter<DrawcashView> {
if (!TextUtils.isEmpty(MintsApplication.OAID)) {
vo.put("oaid", MintsApplication.OAID);
}
vo.put("ua", deviceInfo.getUserAgent());
TrackManager.getInstance().riskinfo();
AppHttpManager.getInstance(loanApplication)
......
......@@ -41,6 +41,7 @@ class HomePresenter : BasePresenter<HomeView>() {
vo["uuid"] = DeviceUuidFactory().deviceUuid
vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName
vo["ua"] = deviceInfo.userAgent.toString()
AppHttpManager.getInstance(loanApplication)
.call(loanService.comSaveTerminalInfo(vo),
......@@ -176,6 +177,7 @@ class HomePresenter : BasePresenter<HomeView>() {
vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName
vo["shumeiId"] = ShumeiManager.getInstance().getShumeiDeviceId()
vo["ua"] = deviceInfo.userAgent.toString()
AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo),
object : BaseSubscriber<BaseResponse<Any>>() {
......
......@@ -247,7 +247,7 @@ class LoginPresenter : BasePresenter<LoginView>() {
vo["appversion"] = deviceInfo.versionName
vo["shumeiId"] = ShumeiManager.getInstance().getShumeiDeviceId()
vo["appPkgList"] = t.toString()
vo["ua"] = deviceInfo.userAgent.toString()
TrackManager.getInstance().riskinfo()
AppHttpManager.getInstance(loanApplication)
......
......@@ -200,6 +200,7 @@ open class MyPresenter : BasePresenter<MyView>() {
vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName
vo["shumeiId"] = ShumeiManager.getInstance().shumeiDeviceId
vo["ua"] = deviceInfo.userAgent.toString()
AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo),
object : BaseSubscriber<BaseResponse<Any>>() {
......
......@@ -72,6 +72,7 @@ class PanPresenter : BasePresenter<PanView>() {
vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName
vo["shumeiId"] = ShumeiManager.getInstance().getShumeiDeviceId()
vo["ua"] = deviceInfo.userAgent.toString()
AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo),
object : BaseSubscriber<BaseResponse<Any>>() {
......
......@@ -185,6 +185,7 @@ class TurnTablePresenter : BasePresenter<TurnTableView>() {
vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName
vo["shumeiId"] = ShumeiManager.getInstance().getShumeiDeviceId()
vo["ua"] = deviceInfo.userAgent.toString()
AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo),
object : BaseSubscriber<BaseResponse<Any>>() {
......
......@@ -425,6 +425,7 @@ class AwardActivity : BaseActivity(), AwardView, View.OnClickListener {
// 是否开启应用使用情况权限
if (AppUtil.isOpenUsageStats()) {
registerBroad()
videoAdingManager.setIsHighWeight(true)
awardVideo()
} else {
AppTryPlayManager.openAppUsageStats(this)
......
......@@ -313,7 +313,7 @@ class DrawcashActivity : BaseActivity(),
data.coraL_VEDIO,
data.csjfulL_VEDIO,
data.kS_VEDIO,
data.rtA_VEDIO
data.oW_VEDIO
)
LogUtil.d(TAG, "提现权重值:csjWeight:${data.csJ_VEDIO} " +
"ylhWeight:${data.ylH_VEDIO} " +
......@@ -321,7 +321,7 @@ class DrawcashActivity : BaseActivity(),
"csjFullWeight:${data.csjfulL_VEDIO} " +
"shWeight:${data.coraL_VEDIO} " +
"flWeight:${data.fL_VEDIO} " +
"rtaWeight:${data.rtA_VEDIO} " +
"owWeight:${data.oW_VEDIO} " +
"ksWeight:${data.kS_VEDIO}"
)
// 广告视频数
......
......@@ -29,6 +29,7 @@ class SplashKsADActivity : BaseActivity() {
* 记录拉取广告的时间
*/
private val handler = Handler(Looper.getMainLooper())
override fun getContentViewLayoutID(): Int {
return R.layout.activity_splash_ylh
}
......@@ -100,6 +101,8 @@ class SplashKsADActivity : BaseActivity() {
next()
}
override fun onRequestResult(p0: Int) {}
override fun onSplashScreenAdLoad(p0: KsSplashScreenAd?) {
LogUtil.d(TAG, "onSplashScreenAdLoad")
......
......@@ -10,10 +10,14 @@ import android.view.Gravity
import android.view.View
import android.widget.FrameLayout
import android.widget.LinearLayout
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction
import com.daimajia.androidanimations.library.Techniques
import com.daimajia.androidanimations.library.YoYo
import com.daimajia.androidanimations.library.YoYo.YoYoString
import com.kwad.sdk.api.KsAdSDK
import com.kwad.sdk.api.KsContentPage
import com.kwad.sdk.api.KsScene
import com.mints.goodmoney.MintsApplication
import com.mints.goodmoney.R
import com.mints.goodmoney.ad.express.PreLoadExpressManager
......@@ -22,7 +26,6 @@ import com.mints.goodmoney.ad.video.VideoAdingManager
import com.mints.goodmoney.common.AppConfig
import com.mints.goodmoney.common.Constant
import com.mints.goodmoney.manager.*
import com.mints.goodmoney.mvp.model.BaseResponse
import com.mints.goodmoney.mvp.model.FlowAdRulesBean
import com.mints.goodmoney.mvp.model.MainVideoMsgBean
import com.mints.goodmoney.mvp.model.UserTaskMsgBean
......@@ -40,11 +43,6 @@ import com.mints.goodmoney.ui.widgets.seekbar.BubbleUtils
import com.mints.goodmoney.utils.LogUtil
import com.mints.goodmoney.utils.TimeRender
import com.mints.library.utils.CommonUtils
import com.yilan.sdk.player.ylplayer.YLPlayerConfig
import com.yilan.sdk.player.ylplayer.callback.OnPlayerCallBack
import com.yilan.sdk.ui.configs.YLUIConfig
import com.yilan.sdk.ui.little.YLLittleVideoFragment
import com.yilan.sdk.ylad.YLAdListener
import kotlinx.android.synthetic.main.layout_red_bag.*
import kotlinx.android.synthetic.main.layout_red_box.*
import net.grandcentrix.tray.AppPreferences
......@@ -64,12 +62,11 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener {
private var bindWxDialog: BindWxDialog? = null
private var userMsgBean: UserTaskMsgBean? = null
private lateinit var baseResponse: BaseResponse<UserTaskMsgBean>
// private lateinit var baseResponse: BaseResponse<UserTaskMsgBean>
// 视频相关
private var rewardDoubleCoin = 0 // 大金币
private var rewardCoin = 0 // 小金币
private var littleVideoFragment: YLLittleVideoFragment? = null
private val videoMaxCount = 12 // 当前缓存视频id最大数
private val videoIdList by lazy { ArrayList<String>() }//记录播放的视频id
......@@ -81,6 +78,10 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener {
// 广告权重相关
private var videoAdingManager: VideoAdingManager? = null
// 快手视频相关
private var ksFragment: Fragment? = null
private var mKsContentPage: KsContentPage? = null
// 福袋相关
private var rope: YoYoString? = null
private var mRedBoxTimer: CountDownTimerSupport? = null
......@@ -125,7 +126,7 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener {
}
override fun onHiddenChanged(hidden: Boolean) {
littleVideoFragment?.onHiddenChanged(hidden)
ksFragment?.onHiddenChanged(hidden)
if (hidden) {
onPause()
......@@ -153,8 +154,7 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener {
}
}
registerPlayerCallBack()
littleVideoFragment?.onResume()
ksFragment?.onResume()
}
}
......@@ -170,16 +170,13 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener {
override fun onPause() {
super.onPause()
if (AppConfig.fragmentClickFlag == Constant.FRAGMENT_CLICK_ONE) {
YLPlayerConfig.config().unRegisterPlayerCallback()
}
// 福袋动画停止
stopRedbox()
// 倒计时红包暂停
pauseDownloadTime()
destroyTimerRedbox()
littleVideoFragment?.onPause()
ksFragment?.onPause()
if (isToCreateReward) {
// 防止界面切换 重置红包动画
......@@ -192,7 +189,7 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener {
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
littleVideoFragment?.userVisibleHint = isVisibleToUser
ksFragment?.userVisibleHint = isVisibleToUser
}
override fun onDestroyView() {
......@@ -208,9 +205,6 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener {
override fun onDestroy() {
super.onDestroy()
// 广告回调解绑
YLUIConfig.getInstance().unRegisterAdListener()
YLPlayerConfig.config().unRegisterPlayerCallback()
homePresenter.detachView()
}
......@@ -224,6 +218,13 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener {
userMsgBean = data
// 高额任务及超级翻倍次数
if (data.highRatePlan != null) {
AppConfig.csjHighVideoAdCount = data.highRatePlan.csj
AppConfig.ylhHighVideoAdCount = data.highRatePlan.ylh
AppConfig.ksHighVideoAdCount = data.highRatePlan.ks
}
if (userMsgBean?.shareNews != null) {
AppConfig.wzReadCoin = userMsgBean!!.shareNews.readCoin
}
......@@ -350,70 +351,103 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener {
}
/**
* 一览视频初始化
* 快手视频初始化
*/
private fun showLittle() {
val transaction: FragmentTransaction = supportFragmentManager.beginTransaction()
if (littleVideoFragment == null) {
littleVideoFragment = YLLittleVideoFragment.newInstance()
transaction.add(R.id.yilan_fragment_frame_container, littleVideoFragment!!, YLLittleVideoFragment::class.java.simpleName)
val adScene = KsScene.Builder(KsManager.KS_CONTENT_POSTID).build()
mKsContentPage = KsAdSDK.getLoadManager().loadContentPage(adScene)
registerPlayerCallBack()
val transaction: FragmentTransaction = childFragmentManager.beginTransaction()
if (ksFragment == null) {
ksFragment = mKsContentPage?.fragment
transaction.add(R.id.yilan_fragment_frame_container, ksFragment!!, "ks_fragment")
} else {
transaction.show(littleVideoFragment!!)
transaction.show(ksFragment!!)
}
transaction.commitAllowingStateLoss()
}
private fun registerPlayerCallBack() {
YLPlayerConfig.config().registerPlayerCallBack(object : OnPlayerCallBack {
override fun onStart(pager: String, videoid: String, p2: String?) {
// 防止网络异常时, 第一次加载倒计时红包
if (isFirstLoadVideo) {
isFirstLoadVideo = false
initTimeview()
} else {
resumeDownloadTime(videoid)
mKsContentPage?.let {
it.setPageListener(object : KsContentPage.PageListener {
override fun onPagePause(p0: KsContentPage.ContentItem?) {
LogUtil.d("onPagePause")
}
}
override fun onPause(pager: String, p1: String?, p2: String?) {
pauseDownloadTime()
}
override fun onPageResume(p0: KsContentPage.ContentItem?) {
LogUtil.d("onPageResume")
}
override fun onResume(pager: String, videoid: String, p2: String?) {
resumeDownloadTime(videoid)
}
override fun onPageEnter(p0: KsContentPage.ContentItem?) {
LogUtil.d("onPageEnter")
override fun onComplete(pager: String, videoid: String, p2: String?) {
}
}
override fun onLoopComplete(pager: String?, videoID: String, taskID: String?, num: Int) {
// LogUtil.d(TAG, "registerPlayerCallBack onLoopComplete")
addVideoIdList(videoID)
pauseDownloadTime()
}
override fun onPageLeave(p0: KsContentPage.ContentItem?) {
LogUtil.d("onPageLeave")
}
})
override fun onStuckStart(pager: String, p1: String?, p2: String?) {
}
override fun onStuckEnd(pager: String, p1: String?, p2: String?) {
}
// 视频播放回调
it.setVideoListener(object : KsContentPage.VideoListener {
override fun onVideoPlayCompleted(p0: KsContentPage.ContentItem?) {
LogUtil.d("onVideoPlayCompleted")
override fun onError(pager: String, p1: String?, p2: String?) {
pauseDownloadTime()
}
addVideoIdList(p0!!.id)
pauseDownloadTime()
}
override fun onStop(pager: String, p1: String?, p2: String?) {
// LogUtil.d(TAG, "registerPlayerCallBack onStop")
// pauseDownloadTime()
}
})
override fun onVideoPlayPaused(p0: KsContentPage.ContentItem?) {
LogUtil.d("onVideoPlayPaused")
pauseDownloadTime()
}
override fun onVideoPlayStart(p0: KsContentPage.ContentItem?) {
LogUtil.d("onVideoPlayStart")
// 防止网络异常时, 第一次加载倒计时红包
if (isFirstLoadVideo) {
isFirstLoadVideo = false
initTimeview()
} else {
resumeDownloadTime(p0!!.id)
}
}
override fun onVideoPlayError(p0: KsContentPage.ContentItem?, p1: Int, p2: Int) {
LogUtil.d("onVideoPlayError")
pauseDownloadTime()
}
override fun onVideoPlayResume(p0: KsContentPage.ContentItem?) {
LogUtil.d("onVideoPlayResume")
// 防止网络异常时, 第一次加载倒计时红包
if (isFirstLoadVideo) {
isFirstLoadVideo = false
initTimeview()
} else {
resumeDownloadTime(p0!!.id)
}
}
})
}
}
private fun initListener() {
val params = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)
params.setMargins(0, 0, 0, BubbleUtils.dp2px(270))
params.setMargins(0, 0, 0, BubbleUtils.dp2px(410))
cdvvYilanTime.layoutParams = params
val paramsRedBox = FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT)
......@@ -424,57 +458,14 @@ class MainFragment : BaseFragment(), HomeView, View.OnClickListener {
rl_fragment_main_redbox.setOnClickListener(this)
rl_fragment_main_redbox.isClickable = false
// 广告回调
YLUIConfig.getInstance().registerAdListener(object : YLAdListener() {
override fun onSuccess(p0: String?, p1: Int, p2: String?, p3: String?) {
}
override fun onError(p0: String?, p1: Int, p2: String?, p3: Int, p4: String?, p5: String?) {
}
override fun onRenderError(p0: String?, p1: Int, p2: String?, p3: Int, p4: String?, p5: String?) {
}
override fun onShow(p0: String?, p1: Int, p2: String?, p3: String) {
resumeAdTime()
}
override fun onClick(p0: String?, p1: Int, p2: String?, p3: String?) {}
override fun onSkip(p0: String?, p1: Int, p2: String?, p3: String?) {}
override fun onTimeOver(p0: String?, p1: Int, p2: String?, p3: String?) {}
override fun onClose(p0: String?, p1: Int, p2: String?, p3: String?) {}
override fun onAdEmpty(p0: String?, p1: Int, p2: String?, p3: String?) {}
override fun onVideoStart(p0: String?, p1: Int, p2: String?, p3: String) {
}
override fun onVideoPause(p0: String?, p1: Int, p2: String?, p3: String?) {
pauseDownloadTime()
}
override fun onVideoResume(p0: String?, p1: Int, p2: String?, p3: String?) {
resumeAdTime()
}
override fun onVideoComplete(p0: String?, p1: Int, p2: String?, p3: String?) {
pauseDownloadTime()
}
override fun onVideoError(p0: String?, p1: Int, p2: String?, p3: String?) {}
})
}
private fun resumeAdTime() {
// 视频未转满 且 界面切换时可继续加进度
if (!isAward) {
cdvvYilanTime?.resume()
}
}
// private fun resumeAdTime() {
// // 视频未转满 且 界面切换时可继续加进度
// if (!isAward) {
// cdvvYilanTime?.resume()
// }
// }
/**
* 将播放的id记录到list中
......
......@@ -4,12 +4,9 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentTransaction
import com.androidkun.xtablayout.XTabLayout
import com.chineseall.reader17ksdk.feature.main.bookshop.wellchosen.WellChosenFragment
import com.mints.goodmoney.R
import com.mints.goodmoney.common.AppConfig
import com.mints.goodmoney.ui.fragment.base.BaseFragment
import com.mints.goodmoney.utils.LogUtil
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.android.synthetic.main.fragment_main_money.*
/**
......@@ -68,7 +65,6 @@ class MoneyFragment : BaseFragment(), XTabLayout.OnTabSelectedListener {
if (AppConfig.showAdFlag) {
if (mainFragment == null) {
mainFragment = MainFragment()
LogUtil.d("mainFragment","mainFragment是空的。。。。。。。。。。。。。。。。。。")
}
if (!mainFragment!!.isAdded) {
// 提交事务
......
......@@ -50,6 +50,7 @@ import com.rd.animation.type.AnimationType
import com.scwang.smartrefresh.layout.api.RefreshLayout
import com.scwang.smartrefresh.layout.listener.OnRefreshListener
import com.tbruyelle.rxpermissions.RxPermissions
import com.umeng.analytics.MobclickAgent
import kotlinx.android.synthetic.main.fragment_main_my.*
import kotlinx.android.synthetic.main.header_layout.*
import kotlinx.android.synthetic.main.item_fragment_main_my_clock.*
......@@ -141,6 +142,10 @@ class MyFragment : BaseFragment(),
override fun onPause() {
super.onPause()
MobclickAgent.onPageEnd(this::class.java.simpleName)
MobclickAgent.onPause(mContext)
banner_view.stopAutoScroll()
item_clock_signview.stopRedbox()
......@@ -149,6 +154,11 @@ class MyFragment : BaseFragment(),
override fun onResume() {
super.onResume()
MobclickAgent.onPageStart(this::class.java.simpleName)
MobclickAgent.onResume(mContext)
if (AppConfig.fragmentClickFlag == Constant.FRAGMENT_CLICK_FIVE) {
// 防止首次加载两次
if (AntiShake.check(item_title_id?.id)) return
......@@ -324,6 +334,13 @@ class MyFragment : BaseFragment(),
return
}
// 高额任务及超级翻倍次数
if (data.highRatePlan != null) {
AppConfig.csjHighVideoAdCount = data.highRatePlan.csj
AppConfig.ylhHighVideoAdCount = data.highRatePlan.ylh
AppConfig.ksHighVideoAdCount = data.highRatePlan.ks
}
if (data.shareNews != null) {
AppConfig.wzReadCoin = data.shareNews.readCoin
}
......@@ -360,7 +377,6 @@ class MyFragment : BaseFragment(),
}
}
/**
* 跳转到微信搜索页面
*/
......@@ -512,7 +528,7 @@ class MyFragment : BaseFragment(),
private fun setUserLoginStatus() {
if (userManager.userIsLogin()) {
LogUtil.d("lixianshouyi","setUserLoginStatus。。。。。。。。。。。。。。。。。。。。。。。。。。")
LogUtil.d("lixianshouyi", "setUserLoginStatus。。。。。。。。。。。。。。。。。。。。。。。。。。")
// 已登录
if (userManager.wxOpenid.isNotEmpty()) {
GlideUtils.loadImageViewLoding(context, userManager.wxHeader, item_title_avatar, R.mipmap.ic_my, R.mipmap.ic_my)
......@@ -870,6 +886,8 @@ class MyFragment : BaseFragment(),
if (taskBean.otherConfig != null) {
when (taskBean.otherConfig.status) {
0 -> {
pushUmengEvent(MainMyAdapter.TO_DOWNLOADS)
pkgMCRSCarrier = Constant.CARRIER_FIRSTDOWNLOADS
pkgMCRSKey = taskBean.otherConfig.key
pkgMCRSName = taskBean.otherConfig.pkg
......@@ -905,6 +923,16 @@ class MyFragment : BaseFragment(),
}
}
/**
* 推送umeng事件埋点
*/
private fun pushUmengEvent(carrierType: String) {
// 埋点上送事件
val map = mutableMapOf<String, String>()
map["userId"] = UserManager.getInstance().userID
MobclickAgent.onEvent(mContext, carrierType, map)
}
//点击事件
override fun onClick(v: View?) {
if (AntiShake.check(view?.id)) return
......@@ -1195,7 +1223,7 @@ class MyFragment : BaseFragment(),
* 激励视频播放成功回调
*/
private fun videoAdingSuccess(adType: String) {
if (activity != null && !activity!!.isFinishing) {
if (activity != null && !requireActivity().isFinishing) {
// 高额任务
if (TextUtils.equals(carrierType, Constant.CARRIER_HIGH_ACTIVITY)) {
return
......@@ -1229,10 +1257,10 @@ class MyFragment : BaseFragment(),
private fun initManager() {
BannerManager.init()
videoAdingManager = VideoAdingManager.getInstance(activity)
LogUtil.d("lixianshouyi","进入到initManager。。。。。。。。。。。。。。。。。。。。。。。。。。")
LogUtil.d("lixianshouyi", "进入到initManager。。。。。。。。。。。。。。。。。。。。。。。。。。")
//登录成功
if (!TextUtils.isEmpty(userManager.userID)) {
LogUtil.d("lixianshouyi","用户登陆成功!!!。。。。。。。。。。。。。。。。。。。。。。。。。。")
LogUtil.d("lixianshouyi", "用户登陆成功!!!。。。。。。。。。。。。。。。。。。。。。。。。。。")
// 登录成功的用户初始化鱼丸盒子
if (userManager.userIsLogin()) {
YwhzManager.init(baseApplication)
......
package com.mints.goodmoney.ui.widgets.dialog
import com.mints.goodmoney.R
import com.mints.goodmoney.ui.widgets.seekbar.BubbleUtils
import com.mints.goodmoney.utils.SpanUtils
import android.app.Dialog
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.graphics.Paint
import android.text.Html
import android.view.Gravity
import android.view.KeyEvent
import android.view.View
import android.view.WindowManager
import android.widget.ImageView
import android.widget.TextView
import com.mints.goodmoney.R
import com.mints.library.utils.nodoubleclick.AntiShake
/**
* 关注公众号
*/
class GzhDialog(context: Context, private val listener: DialogListener) :
Dialog(context, R.style.dialog) {
private val lp: WindowManager.LayoutParams
......@@ -42,12 +43,25 @@ class GzhDialog(context: Context, private val listener: DialogListener) :
tv_focus = findViewById(R.id.tv_focus)
tv_subscribe = findViewById(R.id.tv_subscribe)
iv_Close = findViewById(R.id.iv_Close)
//设置文字底部下划线,不同android系统显示效果不同,未使用
// tv_subscribe.paint.setFlags(Paint.UNDERLINE_TEXT_FLAG)
// tv_subscribe.paint.setAntiAlias(true)//抗锯齿
tv_focus.setOnClickListener(listener)
tv_subscribe.setOnClickListener(listener)
iv_Close.setOnClickListener(listener)
val ssb = SpanUtils()
.append("关注官方公众号")
.append("[淘金空间]\n").setFontSize(BubbleUtils.dp2px(20)).setBold()
.append("您可以第一时间了解到")
.create()
findViewById<TextView>(R.id.tv_1).text = ssb
tv_subscribe.text = Html.fromHtml("<u>我已订阅</u>")
tv_focus.setOnClickListener {
listener.onClick(it)
}
tv_subscribe.setOnClickListener {
listener.onClick(it)
}
iv_Close.setOnClickListener {
listener.onClick(it)
}
}
}
\ No newline at end of file
<?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">
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/bg_gzh">
<ImageView
android:id="@+id/iv_Close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|end"
android:layout_marginTop="50dp"
android:layout_marginEnd="10dp"
android:padding="6dp"
android:src="@mipmap/ic_close" />
<LinearLayout
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@mipmap/bg_gzh"
android:layout_gravity="bottom|center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_Close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginTop="35dp"
android:layout_marginRight="10dp"
android:src="@mipmap/iv_close_gzh" />
<TextView
android:id="@+id/tv_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="186dp"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:text="参与最新赚钱活动、获取提现福利、VIP客服反馈..."
android:textColor="@color/black"
android:layout_marginBottom="10dp"
android:gravity="center"
android:textSize="14sp" />
android:lineHeight="20dp"
android:textColor="@color/color_FF9837"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:text="更多惊喜等你来看!"
android:textColor="@color/black"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="20dp"
android:gravity="center"
android:textSize="14sp" />
android:lineHeight="20dp"
android:text="最新赚钱活动,领取提现福利,VIP客服反馈...\n更多惊喜等你来看!"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_focus"
android:layout_width="200dp"
android:layout_height="36dp"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="20dp"
android:layout_marginTop="36dp"
android:layout_marginRight="20dp"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginBottom="10dp"
android:background="@mipmap/bg_btn_gzh"
android:background="@drawable/shape_main"
android:gravity="center"
android:text="马上关注"
android:textColor="@color/white" />
......@@ -62,19 +60,10 @@
android:id="@+id/tv_subscribe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:gravity="center"
android:text="我已订阅"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginBottom="10dp"
android:textColor="@color/black" />
<View
android:layout_width="55dp"
android:layout_height="1px"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="60dp"
android:background="@color/black" />
</LinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
</RelativeLayout>
\ No newline at end of file
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<paths>
<root-path
name="root"
path="" />
<files-path
name="files"
path="" />
<external-path
name="sdcard"
path="" />
<cache-path
name="cache"
path="" />
<external-files-path
name="exFiles"
path="" />
<external-cache-path
name="exCache"
path="" />
</paths>
</resources>
\ 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