更换Mintegral SDK
This commit is contained in:
parent
888deb17e8
commit
4b168b36df
1
.gitignore
vendored
1
.gitignore
vendored
@ -45,3 +45,4 @@ gradlew.bat
|
||||
.safedk/dex/SafeDKAndroid-6.3.1.dex
|
||||
app/release/AppLock Defender1.1(2).aab
|
||||
app/release/app-release.apk
|
||||
app/release/
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
|
||||
import java.util.Date
|
||||
import java.text.SimpleDateFormat
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.androidApplication)
|
||||
alias(libs.plugins.jetbrainsKotlinAndroid)
|
||||
id("kotlin-kapt")
|
||||
id("com.google.gms.google-services")
|
||||
id("com.google.firebase.crashlytics")
|
||||
id("applovin-quality-service")
|
||||
}
|
||||
|
||||
applovin {
|
||||
apiKey "gaubl3w6OhMaWqmJb15zVNMO8W91OOSTe2fnoftZMmDkQFTnwMdQVdOdPOMwLRbglPnJsKHfqoPl079qleMk96"
|
||||
}
|
||||
|
||||
String timestamp =new SimpleDateFormat("MM_dd_HH_mm").format(new Date())
|
||||
android {
|
||||
namespace 'com.kitobochi.softapp.timberlock'
|
||||
compileSdk 34
|
||||
@ -19,8 +19,10 @@ android {
|
||||
applicationId "com.applock.privacy.defender"
|
||||
minSdk 22
|
||||
targetSdk 34
|
||||
versionCode 2
|
||||
versionName "1.1"
|
||||
versionCode 3
|
||||
versionName "1.2"
|
||||
|
||||
setProperty("archivesBaseName", "AppLock Defender_V" + versionName + "(${versionCode})_$timestamp")
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
@ -66,9 +68,8 @@ dependencies {
|
||||
implementation("com.google.firebase:firebase-analytics-ktx")
|
||||
implementation("com.google.firebase:firebase-crashlytics-ktx")
|
||||
|
||||
implementation("com.applovin:applovin-sdk:+")
|
||||
implementation("com.applovin.mediation:vungle-adapter:+")
|
||||
implementation("com.applovin.mediation:bytedance-adapter:+")
|
||||
implementation("com.applovin.mediation:mintegral-adapter:+")
|
||||
//---------------------------------Mintegral SDK
|
||||
implementation ("com.mbridge.msdk.oversea:newinterstitial:16.7.71")
|
||||
implementation ("com.mbridge.msdk.oversea:mbbid:16.7.61")
|
||||
|
||||
}
|
||||
@ -1,13 +1,13 @@
|
||||
{
|
||||
"project_info": {
|
||||
"project_number": "36819996956",
|
||||
"project_id": "applock-defender---security",
|
||||
"storage_bucket": "applock-defender---security.appspot.com"
|
||||
"project_number": "373578020353",
|
||||
"project_id": "applock-defender---secur-2908f",
|
||||
"storage_bucket": "applock-defender---secur-2908f.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:36819996956:android:63137f1a9ab4d34a37ead9",
|
||||
"mobilesdk_app_id": "1:373578020353:android:889ba755e5ab3a9953b200",
|
||||
"android_client_info": {
|
||||
"package_name": "com.applock.privacy.defender"
|
||||
}
|
||||
@ -15,7 +15,7 @@
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyBGf4ZJn19sNlDd8U1Qt9L9vOUfyNTlF8I"
|
||||
"current_key": "AIzaSyCmKGozLNfOW9eNuOg_tQF6GAjT-V7JLQ0"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
|
||||
@ -4,13 +4,18 @@ import android.app.Application
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.util.Log
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||
import com.applovin.sdk.AppLovinMediationProvider
|
||||
import com.applovin.sdk.AppLovinSdk
|
||||
import com.applovin.sdk.AppLovinSdkInitializationConfiguration
|
||||
import com.kitobochi.softapp.timberlock.ad.MBrManager
|
||||
import com.kitobochi.softapp.timberlock.db.AppDatabase
|
||||
import com.kitobochi.softapp.timberlock.db.AppEntity
|
||||
import com.kitobochi.softapp.timberlock.tools.AppListManager
|
||||
import com.mbridge.msdk.MBridgeSDK
|
||||
import com.mbridge.msdk.mbbid.out.BidListennning
|
||||
import com.mbridge.msdk.mbbid.out.BidManager
|
||||
import com.mbridge.msdk.mbbid.out.BidResponsed
|
||||
import com.mbridge.msdk.out.MBridgeSDKFactory
|
||||
import com.mbridge.msdk.out.SDKInitStatusListener
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
@ -27,8 +32,9 @@ class App : Application() {
|
||||
lateinit var sp: SharedPreferences
|
||||
lateinit var SpEditor: SharedPreferences.Editor
|
||||
|
||||
const val ADSDK = "2qIXFPBROAqtuAoW4uQ78MTqJTfXWGurGLpQvE0iae3vmVXLa8SMxnxgdtq9O1GU3qQVRR1EcHhpS74qiyL8CK"
|
||||
const val AD_INIT = "on_success_action"
|
||||
const val AppId = "299712"
|
||||
const val AppKey = "40ae65dfdf0d938442cd8f4500ad6524"
|
||||
const val AD_INIT = "on_SDK_action"
|
||||
var initOK = false
|
||||
var count = 0
|
||||
}
|
||||
@ -59,16 +65,21 @@ class App : Application() {
|
||||
}
|
||||
|
||||
private fun initSDK() {
|
||||
val sdk: MBridgeSDK = MBridgeSDKFactory.getMBridgeSDK()
|
||||
val map = sdk.getMBConfigurationMap(AppId, AppKey)
|
||||
sdk.init(map, this, object : SDKInitStatusListener {
|
||||
override fun onInitSuccess() {
|
||||
Log.e(MBrManager.TAG, "onInitSuccess")
|
||||
initOK = true
|
||||
LocalBroadcastManager.getInstance(this@App).sendBroadcast(Intent(AD_INIT))
|
||||
|
||||
val initConfig = AppLovinSdkInitializationConfiguration.builder(ADSDK, this)
|
||||
.setMediationProvider(AppLovinMediationProvider.MAX)
|
||||
.build()
|
||||
}
|
||||
|
||||
override fun onInitFail(errorMsg: String) {
|
||||
Log.e(MBrManager.TAG, errorMsg)
|
||||
}
|
||||
})
|
||||
|
||||
AppLovinSdk.getInstance(this).initialize(initConfig){
|
||||
initOK = true
|
||||
LocalBroadcastManager.getInstance(this).sendBroadcast(Intent(AD_INIT))
|
||||
}
|
||||
AppLovinSdk.getInstance(this).settings.setVerboseLogging(true)
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
package com.kitobochi.softapp.timberlock.ad;
|
||||
|
||||
import com.mbridge.msdk.newinterstitial.out.MBBidNewInterstitialHandler;
|
||||
|
||||
public class ADBean {
|
||||
|
||||
private MBBidNewInterstitialHandler interstitialHandler;
|
||||
private String token;
|
||||
|
||||
public void setInterstitialHandler(MBBidNewInterstitialHandler interstitialHandler) {
|
||||
this.interstitialHandler = interstitialHandler;
|
||||
}
|
||||
|
||||
public void setToken(String token) {
|
||||
this.token = token;
|
||||
}
|
||||
|
||||
public MBBidNewInterstitialHandler getInterstitialHandler() {
|
||||
return interstitialHandler;
|
||||
}
|
||||
|
||||
public String getToken() {
|
||||
return token;
|
||||
}
|
||||
}
|
||||
@ -1,9 +0,0 @@
|
||||
package com.kitobochi.softapp.timberlock.ad
|
||||
|
||||
import com.applovin.mediation.MaxAd
|
||||
|
||||
interface AdListener {
|
||||
fun onFail(ad: MaxAd)
|
||||
fun onSuccess()
|
||||
fun onHidden()
|
||||
}
|
||||
@ -1,78 +0,0 @@
|
||||
package com.kitobochi.softapp.timberlock.ad
|
||||
|
||||
import android.app.Activity
|
||||
import com.applovin.mediation.MaxAd
|
||||
import com.applovin.mediation.MaxAdListener
|
||||
import com.applovin.mediation.MaxError
|
||||
import com.applovin.mediation.ads.MaxInterstitialAd
|
||||
import com.kitobochi.softapp.timberlock.App
|
||||
|
||||
object AdManager {
|
||||
|
||||
private val one_AD = "02d8ee636a579373"
|
||||
private val two_Ad = "02d8ee636a579373"
|
||||
private val three_ad = "0b004d33e636f7f8"
|
||||
|
||||
private val list: MutableList<MaxInterstitialAd> = mutableListOf()
|
||||
|
||||
fun onCache(list: List<MaxInterstitialAd>): MaxInterstitialAd? {
|
||||
list.shuffled()
|
||||
for (ad in list) {
|
||||
if (ad.isReady) {
|
||||
return ad
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
fun adLoad(): List<MaxInterstitialAd> {
|
||||
if (list.isEmpty()) {
|
||||
val ad_two = MaxInterstitialAd(two_Ad, App.appContext)
|
||||
val ad_one = MaxInterstitialAd(one_AD, App.appContext)
|
||||
val ad_three = MaxInterstitialAd(three_ad, App.appContext)
|
||||
ad_two.loadAd()
|
||||
ad_one.loadAd()
|
||||
ad_three.loadAd()
|
||||
|
||||
list.add(ad_one)
|
||||
list.add(ad_two)
|
||||
list.add(ad_three)
|
||||
}
|
||||
for (ad: MaxInterstitialAd in list) {
|
||||
if (!ad.isReady) {
|
||||
ad.loadAd()
|
||||
}
|
||||
}
|
||||
|
||||
return list
|
||||
}
|
||||
|
||||
fun setAdListener(ad: MaxInterstitialAd, listener: AdListener) {
|
||||
ad.setListener(object : MaxAdListener {
|
||||
override fun onAdLoaded(p0: MaxAd) {
|
||||
|
||||
}
|
||||
|
||||
override fun onAdDisplayed(p0: MaxAd) {
|
||||
listener.onSuccess()
|
||||
}
|
||||
|
||||
override fun onAdHidden(p0: MaxAd) {
|
||||
listener.onHidden()
|
||||
}
|
||||
|
||||
override fun onAdClicked(p0: MaxAd) {
|
||||
|
||||
}
|
||||
|
||||
override fun onAdLoadFailed(p0: String, p1: MaxError) {
|
||||
|
||||
}
|
||||
|
||||
override fun onAdDisplayFailed(p0: MaxAd, p1: MaxError) {
|
||||
listener.onFail(p0)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,212 @@
|
||||
package com.kitobochi.softapp.timberlock.ad;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.util.Log;
|
||||
|
||||
import com.kitobochi.softapp.timberlock.App;
|
||||
import com.mbridge.msdk.MBridgeConstans;
|
||||
import com.mbridge.msdk.mbbid.out.BidListennning;
|
||||
import com.mbridge.msdk.mbbid.out.BidManager;
|
||||
import com.mbridge.msdk.mbbid.out.BidResponsed;
|
||||
import com.mbridge.msdk.newinterstitial.out.MBBidNewInterstitialHandler;
|
||||
import com.mbridge.msdk.newinterstitial.out.NewInterstitialListener;
|
||||
import com.mbridge.msdk.out.MBridgeIds;
|
||||
import com.mbridge.msdk.out.RewardInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class MBrManager {
|
||||
|
||||
public static String TAG = "------------ltt";
|
||||
|
||||
public static String[] placeIDs = new String[]{"1613586", "1613590", "1613594"};
|
||||
|
||||
public static String[] unitIDs = new String[]{"3472726", "3472731", "3472735"};
|
||||
|
||||
public static List<ADBean> AdInstances = new ArrayList<>();
|
||||
|
||||
public static void getToken(String placeId, String unitId, onBidTokenListener listener) {
|
||||
BidManager manager = new BidManager(placeId, unitId);
|
||||
manager.setBidListener(new BidListennning() {
|
||||
@Override
|
||||
public void onFailed(String s) {
|
||||
listener.onBidToken("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccessed(BidResponsed bidResponsed) {
|
||||
String mBidToken = bidResponsed.getBidToken();
|
||||
listener.onBidToken(mBidToken);
|
||||
}
|
||||
});
|
||||
manager.bid();
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
public static void init(Activity activity, onInterHandlerListener listener) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
String finalPlaceId = placeIDs[i];
|
||||
String unitId = unitIDs[i];
|
||||
getToken(finalPlaceId, unitId, new onBidTokenListener() {
|
||||
@Override
|
||||
public void onBidToken(String token) {
|
||||
MBBidNewInterstitialHandler mMBBidNewInterstitialHandler = new MBBidNewInterstitialHandler(App.appContext, finalPlaceId, unitId);
|
||||
ADBean adBean = new ADBean();
|
||||
Log.d(TAG, "------------token=" + token);
|
||||
adBean.setToken(token);
|
||||
adBean.setInterstitialHandler(mMBBidNewInterstitialHandler);
|
||||
mMBBidNewInterstitialHandler.loadFromBid(token);
|
||||
AdInstances.add(adBean);
|
||||
listener.onAddOK();
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void loadAllAd() {
|
||||
if (AdInstances.size() > 0) {
|
||||
for (ADBean adBean : AdInstances) {
|
||||
if (!adBean.getInterstitialHandler().isBidReady()) {
|
||||
adBean.getInterstitialHandler().loadFromBid(adBean.getToken());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static ADBean getCache() {
|
||||
Collections.shuffle(AdInstances);
|
||||
for (ADBean adBean : AdInstances) {
|
||||
if (adBean.getInterstitialHandler().isBidReady()) {
|
||||
return adBean;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static void setCallBack(MBBidNewInterstitialHandler mbBidNewInterstitialHandler, onAdStatusListener listener) {
|
||||
mbBidNewInterstitialHandler.setInterstitialVideoListener(new NewInterstitialListener() {
|
||||
|
||||
@Override
|
||||
public void onLoadCampaignSuccess(MBridgeIds ids) {
|
||||
/**
|
||||
* 广告已填充
|
||||
* @param ids 封装的广告id对象
|
||||
*/
|
||||
Log.i(TAG, "onLoadCampaignSuccess: " + Thread.currentThread() + " " + ids.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResourceLoadSuccess(MBridgeIds ids) {
|
||||
/**
|
||||
* 广告资源加载成功,可以播放
|
||||
* @param ids 封装的广告id对象
|
||||
*/
|
||||
Log.i(TAG, "onResourceLoadSuccess: " + Thread.currentThread() + " " + ids.toString());
|
||||
listener.onLoaded();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResourceLoadFail(MBridgeIds ids, String errorMsg) {
|
||||
/**
|
||||
* 广告加载失败
|
||||
* @param errorMsg 加载错误原因
|
||||
*/
|
||||
listener.onLoadFail();
|
||||
Log.e(TAG, "onResourceLoadFail errorMsg: " + errorMsg + " " + ids.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onShowFail(MBridgeIds ids, String errorMsg) {
|
||||
/**
|
||||
* 广告播放失败
|
||||
* @param errorMsg 错误原因
|
||||
*/
|
||||
listener.onShowFail();
|
||||
Log.e(TAG, "onShowFail: " + errorMsg + " " + ids.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdShow(MBridgeIds ids) {
|
||||
/**
|
||||
* 广告成功展示
|
||||
*/
|
||||
Log.i(TAG, "onAdShow: " + ids.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdClose(MBridgeIds ids, RewardInfo info) {
|
||||
/**
|
||||
* 广告关闭时调用
|
||||
* @param info.isCompleteView如果为true,则表示已完全观看了视频
|
||||
*/
|
||||
listener.onClose();
|
||||
Log.i(TAG, "onAdClose: " + "isCompleteView:" + info.isCompleteView() + " " + ids.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdClicked(MBridgeIds ids) {
|
||||
/**
|
||||
* 广告被点击
|
||||
* @param 封装的广告id对象
|
||||
*/
|
||||
Log.i(TAG, "onAdClicked: " + ids.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVideoComplete(MBridgeIds ids) {
|
||||
/**
|
||||
* 广告播放完成时调用
|
||||
* @param ids 封装的广告id对象
|
||||
*/
|
||||
Log.i(TAG, "onVideoComplete: " + ids.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAdCloseWithNIReward(MBridgeIds ids, RewardInfo info) {
|
||||
/**
|
||||
* 如果开发人员设置了IV奖励,则在广告关闭时调用.
|
||||
*
|
||||
* @param 封装的广告id对象
|
||||
* @param info.isCompleteView() 是否完全观看
|
||||
*/
|
||||
Log.i(TAG, "onAdCloseWithNIReward: " + ids.toString() + " " + info.toString());
|
||||
|
||||
Log.i(TAG, info.isCompleteView() ? "Video playback/playable is complete." : "Video playback/playable is not complete.");
|
||||
|
||||
int rewardAlertStatus = info.getRewardAlertStatus();
|
||||
|
||||
if (rewardAlertStatus == MBridgeConstans.IVREWARDALERT_STATUS_NOTSHOWN) {
|
||||
Log.e(TAG, "The dialog is not show.");
|
||||
}
|
||||
|
||||
if (rewardAlertStatus == MBridgeConstans.IVREWARDALERT_STATUS_CLICKCONTINUE) {
|
||||
Log.e(TAG, "The dialog's continue button clicked.");
|
||||
}
|
||||
|
||||
if (rewardAlertStatus == MBridgeConstans.IVREWARDALERT_STATUS_CLICKCANCEL) {
|
||||
Log.e(TAG, "The dialog's cancel button clicked.");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEndcardShow(MBridgeIds ids) {
|
||||
/**
|
||||
* 展示广告落地页时调用
|
||||
* @param ids 封装的广告id对象
|
||||
*/
|
||||
Log.i(TAG, "onEndcardShow: " + ids.toString());
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
package com.kitobochi.softapp.timberlock.ad;
|
||||
|
||||
import com.mbridge.msdk.newinterstitial.out.MBBidNewInterstitialHandler;
|
||||
|
||||
public interface onAdStatusListener {
|
||||
|
||||
void onLoaded();
|
||||
void onLoadFail();
|
||||
void onShowFail();
|
||||
|
||||
void onClose();
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
package com.kitobochi.softapp.timberlock.ad;
|
||||
|
||||
public interface onBidTokenListener {
|
||||
|
||||
void onBidToken(String token);
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.kitobochi.softapp.timberlock.ad;
|
||||
|
||||
import com.mbridge.msdk.newinterstitial.out.MBBidNewInterstitialHandler;
|
||||
|
||||
public interface onInterHandlerListener {
|
||||
|
||||
void onAddOK();
|
||||
|
||||
|
||||
// void onLoaded();
|
||||
// void onLoadFail();
|
||||
// void onShowFail();
|
||||
//
|
||||
// void onClose();
|
||||
}
|
||||
@ -1,23 +1,14 @@
|
||||
package com.kitobochi.softapp.timberlock.ui.activity
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.os.CountDownTimer
|
||||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.EditText
|
||||
import android.widget.Toast
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||
import com.applovin.mediation.MaxAd
|
||||
import com.applovin.mediation.ads.MaxInterstitialAd
|
||||
import com.kitobochi.softapp.timberlock.App
|
||||
import com.kitobochi.softapp.timberlock.R
|
||||
import com.kitobochi.softapp.timberlock.ad.AdListener
|
||||
import com.kitobochi.softapp.timberlock.ad.AdManager
|
||||
import com.kitobochi.softapp.timberlock.databinding.ActivitySetpwdBinding
|
||||
|
||||
class SetPwdActivity : BaseActivity(), View.OnClickListener {
|
||||
@ -27,7 +18,7 @@ class SetPwdActivity : BaseActivity(), View.OnClickListener {
|
||||
private val IS_SHOW_AD = "IS_SHOW_AD"
|
||||
|
||||
private val countTime: Long = 12000
|
||||
private lateinit var adList: List<MaxInterstitialAd>
|
||||
|
||||
private lateinit var timer: CountDownTimer
|
||||
|
||||
override fun getActivityView(): View {
|
||||
@ -45,61 +36,6 @@ class SetPwdActivity : BaseActivity(), View.OnClickListener {
|
||||
private fun initAd() {
|
||||
isShowAd = intent.getBooleanExtra(IS_SHOW_AD, false)
|
||||
|
||||
timer = object : CountDownTimer(countTime, 200) {
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
if (isShowAd) {
|
||||
startShowAd()
|
||||
}
|
||||
}
|
||||
override fun onFinish() {
|
||||
if (isShowAd) {
|
||||
startShowAd()
|
||||
}
|
||||
}
|
||||
}
|
||||
startAd()
|
||||
}
|
||||
|
||||
private fun startAd() {
|
||||
if (!App.initOK) {
|
||||
LocalBroadcastManager.getInstance(this).registerReceiver(object : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context?, intent: Intent?) {
|
||||
loadMyAdAndStart()
|
||||
Log.d("------------", "------------1sucess")
|
||||
}
|
||||
}, IntentFilter(App.AD_INIT))
|
||||
} else {
|
||||
loadMyAdAndStart()
|
||||
Log.d("------------", "------------2sucess")
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadMyAdAndStart() {
|
||||
adList = AdManager.adLoad()
|
||||
timer.start()
|
||||
}
|
||||
|
||||
private fun startShowAd() {
|
||||
val checkCacheAd = AdManager.onCache(adList)
|
||||
if (checkCacheAd == null) {
|
||||
return
|
||||
} else {
|
||||
AdManager.setAdListener(checkCacheAd, object : AdListener {
|
||||
override fun onFail(ad: MaxAd) {
|
||||
|
||||
}
|
||||
|
||||
override fun onSuccess() {
|
||||
|
||||
}
|
||||
|
||||
override fun onHidden() {
|
||||
checkCacheAd.loadAd()
|
||||
}
|
||||
|
||||
})
|
||||
checkCacheAd.showAd()
|
||||
}
|
||||
}
|
||||
|
||||
private fun initInput() {
|
||||
|
||||
@ -8,31 +8,24 @@ import android.os.CountDownTimer
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||
import com.applovin.mediation.MaxAd
|
||||
import com.applovin.mediation.ads.MaxInterstitialAd
|
||||
import com.kitobochi.softapp.timberlock.App
|
||||
import com.kitobochi.softapp.timberlock.ad.AdListener
|
||||
import com.kitobochi.softapp.timberlock.ad.AdManager
|
||||
import com.kitobochi.softapp.timberlock.ad.MBrManager
|
||||
import com.kitobochi.softapp.timberlock.ad.onAdStatusListener
|
||||
import com.kitobochi.softapp.timberlock.ad.onInterHandlerListener
|
||||
import com.kitobochi.softapp.timberlock.databinding.ActivityStartBinding
|
||||
import com.vungle.ads.Ad
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import com.mbridge.msdk.newinterstitial.out.MBBidNewInterstitialHandler
|
||||
|
||||
class StartPageActivity : BaseActivity() {
|
||||
|
||||
private lateinit var binding: ActivityStartBinding
|
||||
|
||||
// private val coroutineScope = CoroutineScope(Dispatchers.Main)
|
||||
private val countTime: Long = 12000
|
||||
|
||||
private val IS_SHOW_AD = "IS_SHOW_AD"
|
||||
|
||||
|
||||
private lateinit var adList: List<MaxInterstitialAd>
|
||||
private lateinit var timer: CountDownTimer
|
||||
private var needShow = true
|
||||
private lateinit var interAd:MBBidNewInterstitialHandler
|
||||
|
||||
override fun getActivityView(): View {
|
||||
binding = ActivityStartBinding.inflate(layoutInflater)
|
||||
@ -41,12 +34,14 @@ class StartPageActivity : BaseActivity() {
|
||||
|
||||
override fun initView() {
|
||||
super.initView()
|
||||
Log.d("start-ad", "onCreate")
|
||||
|
||||
timer = object : CountDownTimer(countTime, 200) {
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
if (needShow) {
|
||||
startShowAd {}
|
||||
startShowAd {
|
||||
if(it){
|
||||
startMainActivity()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -59,7 +54,6 @@ class StartPageActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
startAd()
|
||||
// startMainActivity()
|
||||
}
|
||||
|
||||
private fun startAd() {
|
||||
@ -76,35 +70,45 @@ class StartPageActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadMyAdAndStart() {
|
||||
adList = AdManager.adLoad()
|
||||
timer.start()
|
||||
}
|
||||
|
||||
private fun startShowAd(action: () -> Unit) {
|
||||
val checkCacheAd = AdManager.onCache(adList)
|
||||
if (checkCacheAd == null) {
|
||||
action.invoke()
|
||||
} else {
|
||||
private fun startShowAd(action:(go :Boolean)->Unit){
|
||||
val cache = MBrManager.getCache()
|
||||
if(cache == null){
|
||||
action.invoke(false)
|
||||
}else{
|
||||
needShow = false
|
||||
AdManager.setAdListener(checkCacheAd, object : AdListener {
|
||||
override fun onFail(ad: MaxAd) {
|
||||
startMainActivity()
|
||||
}
|
||||
|
||||
override fun onSuccess() {
|
||||
MBrManager.setCallBack(cache.interstitialHandler,object : onAdStatusListener{
|
||||
override fun onLoaded() {
|
||||
|
||||
}
|
||||
|
||||
override fun onHidden() {
|
||||
startMainActivity()
|
||||
checkCacheAd.loadAd()
|
||||
override fun onLoadFail() {
|
||||
|
||||
}
|
||||
|
||||
override fun onShowFail() {
|
||||
action.invoke(true)
|
||||
}
|
||||
|
||||
override fun onClose() {
|
||||
action.invoke(true)
|
||||
}
|
||||
|
||||
})
|
||||
checkCacheAd.showAd()
|
||||
cache.interstitialHandler.showFromBid()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
private fun loadMyAdAndStart() {
|
||||
MBrManager.init(this
|
||||
) {
|
||||
timer.start()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private fun startMainActivity() {
|
||||
|
||||
|
||||
@ -12,13 +12,11 @@ import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.widget.SwitchCompat
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.applovin.mediation.MaxAd
|
||||
import com.applovin.mediation.ads.MaxInterstitialAd
|
||||
import com.kitobochi.softapp.timberlock.App
|
||||
import com.kitobochi.softapp.timberlock.R
|
||||
import com.kitobochi.softapp.timberlock.ad.AdListener
|
||||
import com.kitobochi.softapp.timberlock.ad.AdManager
|
||||
import com.kitobochi.softapp.timberlock.ad.AdMsgListener
|
||||
import com.kitobochi.softapp.timberlock.ad.MBrManager
|
||||
import com.kitobochi.softapp.timberlock.ad.onAdStatusListener
|
||||
import com.kitobochi.softapp.timberlock.db.AppDatabase
|
||||
import com.kitobochi.softapp.timberlock.db.AppEntity
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@ -48,7 +46,9 @@ class AppListAdapter(
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AppListVH {
|
||||
return AppListVH(LayoutInflater.from(parent.context).inflate(R.layout.item_app, parent, false))
|
||||
return AppListVH(
|
||||
LayoutInflater.from(parent.context).inflate(R.layout.item_app, parent, false)
|
||||
)
|
||||
}
|
||||
|
||||
override fun getItemCount(): Int {
|
||||
@ -56,7 +56,8 @@ class AppListAdapter(
|
||||
}
|
||||
|
||||
private fun getAppLog(packageName: String): Drawable {
|
||||
val applicationInfo = packageManager.getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES)
|
||||
val applicationInfo =
|
||||
packageManager.getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES)
|
||||
return packageManager.getApplicationIcon(applicationInfo)
|
||||
}
|
||||
|
||||
@ -79,11 +80,13 @@ class AppListAdapter(
|
||||
} else {
|
||||
format = String.format(mContext.getString(R.string.text_unlocked), appName)
|
||||
}
|
||||
Toast.makeText(mContext, format, Toast.LENGTH_SHORT).show()
|
||||
|
||||
|
||||
|
||||
if (App.count % 5 == 0) {
|
||||
showAd({ showPopup(format) }, format)
|
||||
}else{
|
||||
Toast.makeText(mContext, format, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
App.count++
|
||||
|
||||
@ -99,29 +102,34 @@ class AppListAdapter(
|
||||
}
|
||||
|
||||
private fun showAd(action: () -> Unit, msg: String) {
|
||||
val adList = AdManager.adLoad()
|
||||
val checkCacheAd = AdManager.onCache(adList)
|
||||
if (checkCacheAd == null) {
|
||||
|
||||
val cache = MBrManager.getCache()
|
||||
if (cache == null) {
|
||||
action.invoke()
|
||||
} else {
|
||||
AdManager.setAdListener(checkCacheAd, object : AdListener {
|
||||
override fun onFail(ad: MaxAd) {
|
||||
showPopup(msg)
|
||||
}
|
||||
|
||||
override fun onSuccess() {
|
||||
MBrManager.setCallBack(cache.interstitialHandler, object : onAdStatusListener {
|
||||
override fun onLoaded() {
|
||||
|
||||
}
|
||||
|
||||
override fun onHidden() {
|
||||
override fun onLoadFail() {
|
||||
|
||||
}
|
||||
|
||||
override fun onShowFail() {
|
||||
showPopup(msg)
|
||||
checkCacheAd.loadAd()
|
||||
}
|
||||
|
||||
override fun onClose() {
|
||||
showPopup(msg)
|
||||
MBrManager.loadAllAd()
|
||||
}
|
||||
|
||||
})
|
||||
checkCacheAd.showAd()
|
||||
cache.interstitialHandler.showFromBid()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun showPopup(msg: String) {
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
package com.kitobochi.softapp.timberlock.ui.fragment
|
||||
|
||||
import android.app.AlertDialog
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.kitobochi.softapp.timberlock.ad.AdListener
|
||||
import com.kitobochi.softapp.timberlock.ad.AdMsgListener
|
||||
import com.kitobochi.softapp.timberlock.ad.MBrManager
|
||||
import com.kitobochi.softapp.timberlock.databinding.FragmentApplistBinding
|
||||
import com.kitobochi.softapp.timberlock.db.AppDatabase
|
||||
import com.kitobochi.softapp.timberlock.ui.adapter.AppListAdapter
|
||||
@ -27,6 +26,7 @@ class AppListFragment(
|
||||
override fun initView() {
|
||||
super.initView()
|
||||
initAppList()
|
||||
MBrManager.loadAllAd()
|
||||
}
|
||||
|
||||
private fun initAppList() {
|
||||
|
||||
@ -5,6 +5,8 @@ import android.net.Uri
|
||||
import android.view.View
|
||||
import com.kitobochi.softapp.timberlock.App
|
||||
import com.kitobochi.softapp.timberlock.R
|
||||
import com.kitobochi.softapp.timberlock.ad.MBrManager
|
||||
import com.kitobochi.softapp.timberlock.ad.onAdStatusListener
|
||||
import com.kitobochi.softapp.timberlock.databinding.FragmentSettingBinding
|
||||
import com.kitobochi.softapp.timberlock.tools.LockServiceManager
|
||||
import com.kitobochi.softapp.timberlock.ui.activity.SetPwdActivity
|
||||
@ -15,6 +17,7 @@ class SettingFragment : BaseFragment(), View.OnClickListener {
|
||||
private lateinit var binding: FragmentSettingBinding
|
||||
override fun getFragmentView(): View {
|
||||
binding = FragmentSettingBinding.inflate(layoutInflater)
|
||||
MBrManager.loadAllAd()
|
||||
return binding.root
|
||||
}
|
||||
|
||||
@ -48,9 +51,12 @@ class SettingFragment : BaseFragment(), View.OnClickListener {
|
||||
}
|
||||
|
||||
binding.settingPassword -> {
|
||||
val intent = Intent(requireContext(), SetPwdActivity::class.java)
|
||||
intent.putExtra(IS_SHOW_AD, true)
|
||||
startActivity(intent)
|
||||
showAd{
|
||||
val intent = Intent(requireContext(), SetPwdActivity::class.java)
|
||||
intent.putExtra(IS_SHOW_AD, true)
|
||||
startActivity(intent)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// binding.settingInit -> {
|
||||
@ -58,4 +64,35 @@ class SettingFragment : BaseFragment(), View.OnClickListener {
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
private fun showAd(action: () -> Unit) {
|
||||
|
||||
val cache = MBrManager.getCache()
|
||||
if (cache == null) {
|
||||
action.invoke()
|
||||
} else {
|
||||
MBrManager.setCallBack(cache.interstitialHandler, object : onAdStatusListener {
|
||||
override fun onLoaded() {
|
||||
|
||||
}
|
||||
|
||||
override fun onLoadFail() {
|
||||
|
||||
}
|
||||
|
||||
override fun onShowFail() {
|
||||
action.invoke()
|
||||
}
|
||||
|
||||
override fun onClose() {
|
||||
action.invoke()
|
||||
MBrManager.loadAllAd()
|
||||
}
|
||||
|
||||
})
|
||||
cache.interstitialHandler.showFromBid()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,9 +1,5 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
buildscript{
|
||||
dependencies{
|
||||
classpath("com.applovin.quality:AppLovinQualityServiceGradlePlugin:+")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.androidApplication) apply false
|
||||
|
||||
@ -9,7 +9,7 @@ pluginManagement {
|
||||
}
|
||||
mavenCentral()
|
||||
gradlePluginPortal()
|
||||
maven { url "https://artifacts.applovin.com/android"}
|
||||
|
||||
}
|
||||
}
|
||||
dependencyResolutionManagement {
|
||||
@ -17,10 +17,12 @@ dependencyResolutionManagement {
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
maven { url "https://artifact.bytedance.com/repository/pangle" }
|
||||
maven { url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") }
|
||||
maven {
|
||||
url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea"
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.name = "TimberLock"
|
||||
rootProject.name = "AppLock Defender"
|
||||
include ':app'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user