更换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
|
.safedk/dex/SafeDKAndroid-6.3.1.dex
|
||||||
app/release/AppLock Defender1.1(2).aab
|
app/release/AppLock Defender1.1(2).aab
|
||||||
app/release/app-release.apk
|
app/release/app-release.apk
|
||||||
|
app/release/
|
||||||
|
|||||||
@ -1,16 +1,16 @@
|
|||||||
|
|
||||||
|
import java.util.Date
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
alias(libs.plugins.androidApplication)
|
alias(libs.plugins.androidApplication)
|
||||||
alias(libs.plugins.jetbrainsKotlinAndroid)
|
alias(libs.plugins.jetbrainsKotlinAndroid)
|
||||||
id("kotlin-kapt")
|
id("kotlin-kapt")
|
||||||
id("com.google.gms.google-services")
|
id("com.google.gms.google-services")
|
||||||
id("com.google.firebase.crashlytics")
|
id("com.google.firebase.crashlytics")
|
||||||
id("applovin-quality-service")
|
|
||||||
}
|
|
||||||
|
|
||||||
applovin {
|
|
||||||
apiKey "gaubl3w6OhMaWqmJb15zVNMO8W91OOSTe2fnoftZMmDkQFTnwMdQVdOdPOMwLRbglPnJsKHfqoPl079qleMk96"
|
|
||||||
}
|
}
|
||||||
|
String timestamp =new SimpleDateFormat("MM_dd_HH_mm").format(new Date())
|
||||||
android {
|
android {
|
||||||
namespace 'com.kitobochi.softapp.timberlock'
|
namespace 'com.kitobochi.softapp.timberlock'
|
||||||
compileSdk 34
|
compileSdk 34
|
||||||
@ -19,8 +19,10 @@ android {
|
|||||||
applicationId "com.applock.privacy.defender"
|
applicationId "com.applock.privacy.defender"
|
||||||
minSdk 22
|
minSdk 22
|
||||||
targetSdk 34
|
targetSdk 34
|
||||||
versionCode 2
|
versionCode 3
|
||||||
versionName "1.1"
|
versionName "1.2"
|
||||||
|
|
||||||
|
setProperty("archivesBaseName", "AppLock Defender_V" + versionName + "(${versionCode})_$timestamp")
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,9 +68,8 @@ dependencies {
|
|||||||
implementation("com.google.firebase:firebase-analytics-ktx")
|
implementation("com.google.firebase:firebase-analytics-ktx")
|
||||||
implementation("com.google.firebase:firebase-crashlytics-ktx")
|
implementation("com.google.firebase:firebase-crashlytics-ktx")
|
||||||
|
|
||||||
implementation("com.applovin:applovin-sdk:+")
|
//---------------------------------Mintegral SDK
|
||||||
implementation("com.applovin.mediation:vungle-adapter:+")
|
implementation ("com.mbridge.msdk.oversea:newinterstitial:16.7.71")
|
||||||
implementation("com.applovin.mediation:bytedance-adapter:+")
|
implementation ("com.mbridge.msdk.oversea:mbbid:16.7.61")
|
||||||
implementation("com.applovin.mediation:mintegral-adapter:+")
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"project_info": {
|
"project_info": {
|
||||||
"project_number": "36819996956",
|
"project_number": "373578020353",
|
||||||
"project_id": "applock-defender---security",
|
"project_id": "applock-defender---secur-2908f",
|
||||||
"storage_bucket": "applock-defender---security.appspot.com"
|
"storage_bucket": "applock-defender---secur-2908f.appspot.com"
|
||||||
},
|
},
|
||||||
"client": [
|
"client": [
|
||||||
{
|
{
|
||||||
"client_info": {
|
"client_info": {
|
||||||
"mobilesdk_app_id": "1:36819996956:android:63137f1a9ab4d34a37ead9",
|
"mobilesdk_app_id": "1:373578020353:android:889ba755e5ab3a9953b200",
|
||||||
"android_client_info": {
|
"android_client_info": {
|
||||||
"package_name": "com.applock.privacy.defender"
|
"package_name": "com.applock.privacy.defender"
|
||||||
}
|
}
|
||||||
@ -15,7 +15,7 @@
|
|||||||
"oauth_client": [],
|
"oauth_client": [],
|
||||||
"api_key": [
|
"api_key": [
|
||||||
{
|
{
|
||||||
"current_key": "AIzaSyBGf4ZJn19sNlDd8U1Qt9L9vOUfyNTlF8I"
|
"current_key": "AIzaSyCmKGozLNfOW9eNuOg_tQF6GAjT-V7JLQ0"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"services": {
|
"services": {
|
||||||
|
|||||||
@ -4,13 +4,18 @@ import android.app.Application
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
|
import android.util.Log
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||||
import com.applovin.sdk.AppLovinMediationProvider
|
import com.kitobochi.softapp.timberlock.ad.MBrManager
|
||||||
import com.applovin.sdk.AppLovinSdk
|
|
||||||
import com.applovin.sdk.AppLovinSdkInitializationConfiguration
|
|
||||||
import com.kitobochi.softapp.timberlock.db.AppDatabase
|
import com.kitobochi.softapp.timberlock.db.AppDatabase
|
||||||
import com.kitobochi.softapp.timberlock.db.AppEntity
|
import com.kitobochi.softapp.timberlock.db.AppEntity
|
||||||
import com.kitobochi.softapp.timberlock.tools.AppListManager
|
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.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@ -27,8 +32,9 @@ class App : Application() {
|
|||||||
lateinit var sp: SharedPreferences
|
lateinit var sp: SharedPreferences
|
||||||
lateinit var SpEditor: SharedPreferences.Editor
|
lateinit var SpEditor: SharedPreferences.Editor
|
||||||
|
|
||||||
const val ADSDK = "2qIXFPBROAqtuAoW4uQ78MTqJTfXWGurGLpQvE0iae3vmVXLa8SMxnxgdtq9O1GU3qQVRR1EcHhpS74qiyL8CK"
|
const val AppId = "299712"
|
||||||
const val AD_INIT = "on_success_action"
|
const val AppKey = "40ae65dfdf0d938442cd8f4500ad6524"
|
||||||
|
const val AD_INIT = "on_SDK_action"
|
||||||
var initOK = false
|
var initOK = false
|
||||||
var count = 0
|
var count = 0
|
||||||
}
|
}
|
||||||
@ -59,16 +65,21 @@ class App : Application() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun initSDK() {
|
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
|
package com.kitobochi.softapp.timberlock.ui.activity
|
||||||
|
|
||||||
import android.content.BroadcastReceiver
|
|
||||||
import android.content.Context
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.IntentFilter
|
|
||||||
import android.os.CountDownTimer
|
import android.os.CountDownTimer
|
||||||
import android.text.Editable
|
import android.text.Editable
|
||||||
import android.text.TextWatcher
|
import android.text.TextWatcher
|
||||||
import android.util.Log
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.EditText
|
import android.widget.EditText
|
||||||
import android.widget.Toast
|
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.App
|
||||||
import com.kitobochi.softapp.timberlock.R
|
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
|
import com.kitobochi.softapp.timberlock.databinding.ActivitySetpwdBinding
|
||||||
|
|
||||||
class SetPwdActivity : BaseActivity(), View.OnClickListener {
|
class SetPwdActivity : BaseActivity(), View.OnClickListener {
|
||||||
@ -27,7 +18,7 @@ class SetPwdActivity : BaseActivity(), View.OnClickListener {
|
|||||||
private val IS_SHOW_AD = "IS_SHOW_AD"
|
private val IS_SHOW_AD = "IS_SHOW_AD"
|
||||||
|
|
||||||
private val countTime: Long = 12000
|
private val countTime: Long = 12000
|
||||||
private lateinit var adList: List<MaxInterstitialAd>
|
|
||||||
private lateinit var timer: CountDownTimer
|
private lateinit var timer: CountDownTimer
|
||||||
|
|
||||||
override fun getActivityView(): View {
|
override fun getActivityView(): View {
|
||||||
@ -45,61 +36,6 @@ class SetPwdActivity : BaseActivity(), View.OnClickListener {
|
|||||||
private fun initAd() {
|
private fun initAd() {
|
||||||
isShowAd = intent.getBooleanExtra(IS_SHOW_AD, false)
|
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() {
|
private fun initInput() {
|
||||||
|
|||||||
@ -8,31 +8,24 @@ import android.os.CountDownTimer
|
|||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
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.App
|
||||||
import com.kitobochi.softapp.timberlock.ad.AdListener
|
import com.kitobochi.softapp.timberlock.ad.MBrManager
|
||||||
import com.kitobochi.softapp.timberlock.ad.AdManager
|
import com.kitobochi.softapp.timberlock.ad.onAdStatusListener
|
||||||
|
import com.kitobochi.softapp.timberlock.ad.onInterHandlerListener
|
||||||
import com.kitobochi.softapp.timberlock.databinding.ActivityStartBinding
|
import com.kitobochi.softapp.timberlock.databinding.ActivityStartBinding
|
||||||
import com.vungle.ads.Ad
|
import com.mbridge.msdk.newinterstitial.out.MBBidNewInterstitialHandler
|
||||||
import kotlinx.coroutines.CoroutineScope
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
|
||||||
import kotlinx.coroutines.delay
|
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
|
|
||||||
class StartPageActivity : BaseActivity() {
|
class StartPageActivity : BaseActivity() {
|
||||||
|
|
||||||
private lateinit var binding: ActivityStartBinding
|
private lateinit var binding: ActivityStartBinding
|
||||||
|
|
||||||
// private val coroutineScope = CoroutineScope(Dispatchers.Main)
|
|
||||||
private val countTime: Long = 12000
|
private val countTime: Long = 12000
|
||||||
|
|
||||||
private val IS_SHOW_AD = "IS_SHOW_AD"
|
private val IS_SHOW_AD = "IS_SHOW_AD"
|
||||||
|
|
||||||
|
|
||||||
private lateinit var adList: List<MaxInterstitialAd>
|
|
||||||
private lateinit var timer: CountDownTimer
|
private lateinit var timer: CountDownTimer
|
||||||
private var needShow = true
|
private var needShow = true
|
||||||
|
private lateinit var interAd:MBBidNewInterstitialHandler
|
||||||
|
|
||||||
override fun getActivityView(): View {
|
override fun getActivityView(): View {
|
||||||
binding = ActivityStartBinding.inflate(layoutInflater)
|
binding = ActivityStartBinding.inflate(layoutInflater)
|
||||||
@ -41,12 +34,14 @@ class StartPageActivity : BaseActivity() {
|
|||||||
|
|
||||||
override fun initView() {
|
override fun initView() {
|
||||||
super.initView()
|
super.initView()
|
||||||
Log.d("start-ad", "onCreate")
|
|
||||||
|
|
||||||
timer = object : CountDownTimer(countTime, 200) {
|
timer = object : CountDownTimer(countTime, 200) {
|
||||||
override fun onTick(millisUntilFinished: Long) {
|
override fun onTick(millisUntilFinished: Long) {
|
||||||
if (needShow) {
|
if (needShow) {
|
||||||
startShowAd {}
|
startShowAd {
|
||||||
|
if(it){
|
||||||
|
startMainActivity()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,7 +54,6 @@ class StartPageActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
startAd()
|
startAd()
|
||||||
// startMainActivity()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun startAd() {
|
private fun startAd() {
|
||||||
@ -76,35 +70,45 @@ class StartPageActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun loadMyAdAndStart() {
|
|
||||||
adList = AdManager.adLoad()
|
|
||||||
timer.start()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun startShowAd(action: () -> Unit) {
|
private fun startShowAd(action:(go :Boolean)->Unit){
|
||||||
val checkCacheAd = AdManager.onCache(adList)
|
val cache = MBrManager.getCache()
|
||||||
if (checkCacheAd == null) {
|
if(cache == null){
|
||||||
action.invoke()
|
action.invoke(false)
|
||||||
} else {
|
}else{
|
||||||
needShow = false
|
needShow = false
|
||||||
AdManager.setAdListener(checkCacheAd, object : AdListener {
|
MBrManager.setCallBack(cache.interstitialHandler,object : onAdStatusListener{
|
||||||
override fun onFail(ad: MaxAd) {
|
override fun onLoaded() {
|
||||||
startMainActivity()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onSuccess() {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onHidden() {
|
override fun onLoadFail() {
|
||||||
startMainActivity()
|
|
||||||
checkCacheAd.loadAd()
|
}
|
||||||
|
|
||||||
|
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() {
|
private fun startMainActivity() {
|
||||||
|
|
||||||
|
|||||||
@ -12,13 +12,11 @@ import android.widget.TextView
|
|||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.widget.SwitchCompat
|
import androidx.appcompat.widget.SwitchCompat
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
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.App
|
||||||
import com.kitobochi.softapp.timberlock.R
|
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.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.AppDatabase
|
||||||
import com.kitobochi.softapp.timberlock.db.AppEntity
|
import com.kitobochi.softapp.timberlock.db.AppEntity
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
@ -48,7 +46,9 @@ class AppListAdapter(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AppListVH {
|
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 {
|
override fun getItemCount(): Int {
|
||||||
@ -56,7 +56,8 @@ class AppListAdapter(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getAppLog(packageName: String): Drawable {
|
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)
|
return packageManager.getApplicationIcon(applicationInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,11 +80,13 @@ class AppListAdapter(
|
|||||||
} else {
|
} else {
|
||||||
format = String.format(mContext.getString(R.string.text_unlocked), appName)
|
format = String.format(mContext.getString(R.string.text_unlocked), appName)
|
||||||
}
|
}
|
||||||
Toast.makeText(mContext, format, Toast.LENGTH_SHORT).show()
|
|
||||||
|
|
||||||
|
|
||||||
if (App.count % 5 == 0) {
|
if (App.count % 5 == 0) {
|
||||||
showAd({ showPopup(format) }, format)
|
showAd({ showPopup(format) }, format)
|
||||||
|
}else{
|
||||||
|
Toast.makeText(mContext, format, Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
App.count++
|
App.count++
|
||||||
|
|
||||||
@ -99,29 +102,34 @@ class AppListAdapter(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun showAd(action: () -> Unit, msg: String) {
|
private fun showAd(action: () -> Unit, msg: String) {
|
||||||
val adList = AdManager.adLoad()
|
|
||||||
val checkCacheAd = AdManager.onCache(adList)
|
val cache = MBrManager.getCache()
|
||||||
if (checkCacheAd == null) {
|
if (cache == null) {
|
||||||
action.invoke()
|
action.invoke()
|
||||||
} else {
|
} else {
|
||||||
AdManager.setAdListener(checkCacheAd, object : AdListener {
|
MBrManager.setCallBack(cache.interstitialHandler, object : onAdStatusListener {
|
||||||
override fun onFail(ad: MaxAd) {
|
override fun onLoaded() {
|
||||||
showPopup(msg)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onSuccess() {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onHidden() {
|
override fun onLoadFail() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onShowFail() {
|
||||||
showPopup(msg)
|
showPopup(msg)
|
||||||
checkCacheAd.loadAd()
|
}
|
||||||
|
|
||||||
|
override fun onClose() {
|
||||||
|
showPopup(msg)
|
||||||
|
MBrManager.loadAllAd()
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
checkCacheAd.showAd()
|
cache.interstitialHandler.showFromBid()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showPopup(msg: String) {
|
private fun showPopup(msg: String) {
|
||||||
|
|||||||
@ -1,11 +1,10 @@
|
|||||||
package com.kitobochi.softapp.timberlock.ui.fragment
|
package com.kitobochi.softapp.timberlock.ui.fragment
|
||||||
|
|
||||||
import android.app.AlertDialog
|
import android.app.AlertDialog
|
||||||
import android.util.Log
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
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.AdMsgListener
|
||||||
|
import com.kitobochi.softapp.timberlock.ad.MBrManager
|
||||||
import com.kitobochi.softapp.timberlock.databinding.FragmentApplistBinding
|
import com.kitobochi.softapp.timberlock.databinding.FragmentApplistBinding
|
||||||
import com.kitobochi.softapp.timberlock.db.AppDatabase
|
import com.kitobochi.softapp.timberlock.db.AppDatabase
|
||||||
import com.kitobochi.softapp.timberlock.ui.adapter.AppListAdapter
|
import com.kitobochi.softapp.timberlock.ui.adapter.AppListAdapter
|
||||||
@ -27,6 +26,7 @@ class AppListFragment(
|
|||||||
override fun initView() {
|
override fun initView() {
|
||||||
super.initView()
|
super.initView()
|
||||||
initAppList()
|
initAppList()
|
||||||
|
MBrManager.loadAllAd()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initAppList() {
|
private fun initAppList() {
|
||||||
|
|||||||
@ -5,6 +5,8 @@ import android.net.Uri
|
|||||||
import android.view.View
|
import android.view.View
|
||||||
import com.kitobochi.softapp.timberlock.App
|
import com.kitobochi.softapp.timberlock.App
|
||||||
import com.kitobochi.softapp.timberlock.R
|
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.databinding.FragmentSettingBinding
|
||||||
import com.kitobochi.softapp.timberlock.tools.LockServiceManager
|
import com.kitobochi.softapp.timberlock.tools.LockServiceManager
|
||||||
import com.kitobochi.softapp.timberlock.ui.activity.SetPwdActivity
|
import com.kitobochi.softapp.timberlock.ui.activity.SetPwdActivity
|
||||||
@ -15,6 +17,7 @@ class SettingFragment : BaseFragment(), View.OnClickListener {
|
|||||||
private lateinit var binding: FragmentSettingBinding
|
private lateinit var binding: FragmentSettingBinding
|
||||||
override fun getFragmentView(): View {
|
override fun getFragmentView(): View {
|
||||||
binding = FragmentSettingBinding.inflate(layoutInflater)
|
binding = FragmentSettingBinding.inflate(layoutInflater)
|
||||||
|
MBrManager.loadAllAd()
|
||||||
return binding.root
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,9 +51,12 @@ class SettingFragment : BaseFragment(), View.OnClickListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
binding.settingPassword -> {
|
binding.settingPassword -> {
|
||||||
val intent = Intent(requireContext(), SetPwdActivity::class.java)
|
showAd{
|
||||||
intent.putExtra(IS_SHOW_AD, true)
|
val intent = Intent(requireContext(), SetPwdActivity::class.java)
|
||||||
startActivity(intent)
|
intent.putExtra(IS_SHOW_AD, true)
|
||||||
|
startActivity(intent)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// binding.settingInit -> {
|
// 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.
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||||
buildscript{
|
|
||||||
dependencies{
|
|
||||||
classpath("com.applovin.quality:AppLovinQualityServiceGradlePlugin:+")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
alias(libs.plugins.androidApplication) apply false
|
alias(libs.plugins.androidApplication) apply false
|
||||||
|
|||||||
@ -9,7 +9,7 @@ pluginManagement {
|
|||||||
}
|
}
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
gradlePluginPortal()
|
gradlePluginPortal()
|
||||||
maven { url "https://artifacts.applovin.com/android"}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dependencyResolutionManagement {
|
dependencyResolutionManagement {
|
||||||
@ -17,10 +17,12 @@ dependencyResolutionManagement {
|
|||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
maven { url "https://artifact.bytedance.com/repository/pangle" }
|
maven {
|
||||||
maven { url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") }
|
url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea"
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rootProject.name = "TimberLock"
|
rootProject.name = "AppLock Defender"
|
||||||
include ':app'
|
include ':app'
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user