V_1.0.3(4) Liftoff SDK
This commit is contained in:
parent
870308eb50
commit
5947f23b9e
BIN
app/PaintingHelper.jks
Normal file
BIN
app/PaintingHelper.jks
Normal file
Binary file not shown.
@ -14,7 +14,7 @@ android {
|
|||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
//com.draw.painting.helper
|
//com.draw.painting.helper
|
||||||
applicationId = "com.draw.painting.test"
|
applicationId = "com.draw.painting.helper"
|
||||||
minSdk = 23
|
minSdk = 23
|
||||||
targetSdk = 34
|
targetSdk = 34
|
||||||
versionCode = 1
|
versionCode = 1
|
||||||
@ -68,32 +68,32 @@ dependencies {
|
|||||||
implementation ("androidx.camera:camera-extensions:${camerax_version}")
|
implementation ("androidx.camera:camera-extensions:${camerax_version}")
|
||||||
|
|
||||||
|
|
||||||
implementation(platform("com.google.firebase:firebase-bom:33.1.1"))
|
// implementation(platform("com.google.firebase:firebase-bom:33.1.1"))
|
||||||
implementation("com.google.firebase:firebase-crashlytics")
|
// implementation("com.google.firebase:firebase-crashlytics")
|
||||||
implementation("com.google.firebase:firebase-analytics")
|
// implementation("com.google.firebase:firebase-analytics")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
implementation ("com.ironsource.sdk:mediationsdk:8.1.0")
|
// implementation ("com.ironsource.sdk:mediationsdk:8.1.0")
|
||||||
implementation ("com.ironsource:adqualitysdk:7.20.2")
|
// implementation ("com.ironsource:adqualitysdk:7.20.2")
|
||||||
|
//
|
||||||
// Add Vungle Network(Liftoff Moneti)
|
// // Add Vungle Network(Liftoff Moneti)
|
||||||
implementation ("com.ironsource.adapters:vungleadapter:4.3.24")
|
// implementation ("com.ironsource.adapters:vungleadapter:4.3.24")
|
||||||
implementation ("com.vungle:vungle-ads:7.3.2")
|
// implementation ("com.vungle:vungle-ads:7.3.2")
|
||||||
|
//
|
||||||
//Mintegral
|
// //Mintegral
|
||||||
implementation ("com.mbridge.msdk.oversea:mbbid:16.7.71")
|
// implementation ("com.mbridge.msdk.oversea:mbbid:16.7.71")
|
||||||
implementation ("com.mbridge.msdk.oversea:reward:16.7.71")
|
// implementation ("com.mbridge.msdk.oversea:reward:16.7.71")
|
||||||
implementation ("com.mbridge.msdk.oversea:mbbanner:16.7.71")
|
// implementation ("com.mbridge.msdk.oversea:mbbanner:16.7.71")
|
||||||
implementation ("com.mbridge.msdk.oversea:newinterstitial:16.7.71")
|
// implementation ("com.mbridge.msdk.oversea:newinterstitial:16.7.71")
|
||||||
|
//
|
||||||
// Add Pangle Network
|
// // Add Pangle Network
|
||||||
implementation ("com.ironsource.adapters:pangleadapter:4.3.26")
|
// implementation ("com.ironsource.adapters:pangleadapter:4.3.26")
|
||||||
implementation ("com.pangle.global:ads-sdk:5.8.0.8")
|
// implementation ("com.pangle.global:ads-sdk:5.8.0.8")
|
||||||
|
//
|
||||||
// Add UnityAds Network
|
// // Add UnityAds Network
|
||||||
implementation ("com.ironsource.adapters:unityadsadapter:4.3.40")
|
// implementation ("com.ironsource.adapters:unityadsadapter:4.3.40")
|
||||||
implementation ("com.unity3d.ads:unity-ads:4.12.0")
|
// implementation ("com.unity3d.ads:unity-ads:4.12.0")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,10 +3,7 @@ package com.draw.painting.test;
|
|||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
|
|
||||||
|
|
||||||
import com.draw.painting.test.ironad.IronSourceAd;
|
|
||||||
import com.ironsource.mediationsdk.IronSource;
|
|
||||||
import com.ironsource.mediationsdk.integration.IntegrationHelper;
|
|
||||||
import com.ironsource.mediationsdk.sdk.InitializationListener;
|
|
||||||
|
|
||||||
public class PaintingApp extends Application {
|
public class PaintingApp extends Application {
|
||||||
|
|
||||||
@ -26,17 +23,17 @@ public class PaintingApp extends Application {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initSDk() {
|
private void initSDk() {
|
||||||
IronSource.init(this, APP_KEY, new InitializationListener() {
|
// IronSource.init(this, APP_KEY, new InitializationListener() {
|
||||||
@Override
|
// @Override
|
||||||
public void onInitializationComplete() {
|
// public void onInitializationComplete() {
|
||||||
// ironSource SDK is initialized
|
// // ironSource SDK is initialized
|
||||||
//加载插页广告
|
// //加载插页广告
|
||||||
IronSourceAd.loadAd();
|
// IronSourceAd.loadAd();
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
|
//
|
||||||
//验证集成的成功 ,release的时候需要删除
|
// //验证集成的成功 ,release的时候需要删除
|
||||||
IntegrationHelper.validateIntegration(this);
|
// IntegrationHelper.validateIntegration(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,6 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
|
|
||||||
import com.draw.painting.test.PaintingApp;
|
import com.draw.painting.test.PaintingApp;
|
||||||
import com.draw.painting.test.R;
|
import com.draw.painting.test.R;
|
||||||
import com.draw.painting.test.ironad.IronSourceAd;
|
|
||||||
import com.draw.painting.test.manager.Keys;
|
import com.draw.painting.test.manager.Keys;
|
||||||
import com.draw.painting.test.onClickListener;
|
import com.draw.painting.test.onClickListener;
|
||||||
import com.draw.painting.test.ui.CameraActivity;
|
import com.draw.painting.test.ui.CameraActivity;
|
||||||
|
|||||||
@ -1,12 +0,0 @@
|
|||||||
package com.draw.painting.test.ironad
|
|
||||||
|
|
||||||
interface IronListener {
|
|
||||||
fun onLoaded()
|
|
||||||
fun onLoadFail()
|
|
||||||
|
|
||||||
fun onClose()
|
|
||||||
|
|
||||||
fun onShowFail()
|
|
||||||
|
|
||||||
fun onShowSuccess()
|
|
||||||
}
|
|
||||||
@ -1,157 +0,0 @@
|
|||||||
package com.draw.painting.test.ironad
|
|
||||||
|
|
||||||
import android.app.Activity
|
|
||||||
import android.os.CountDownTimer
|
|
||||||
import android.util.Log
|
|
||||||
import com.ironsource.mediationsdk.IronSource
|
|
||||||
import com.ironsource.mediationsdk.adunit.adapter.utility.AdInfo
|
|
||||||
import com.ironsource.mediationsdk.logger.IronSourceError
|
|
||||||
import com.ironsource.mediationsdk.sdk.LevelPlayInterstitialListener
|
|
||||||
|
|
||||||
object IronSourceAd {
|
|
||||||
|
|
||||||
const val NO_CACHE = 0
|
|
||||||
const val HAS_CACHE = 1
|
|
||||||
const val SHOW_FAIL = 2
|
|
||||||
const val SHOW_SUCCESS = 3
|
|
||||||
const val SHOW_CLOSE = 4
|
|
||||||
const val TAG = "-================="
|
|
||||||
const val adPlace1 = ""
|
|
||||||
const val adPlace2 = ""
|
|
||||||
const val adPlace3 = ""
|
|
||||||
|
|
||||||
|
|
||||||
private fun setAdCallBack(listener: IronListener) {
|
|
||||||
IronSource.setLevelPlayInterstitialListener(object : LevelPlayInterstitialListener {
|
|
||||||
// Invoked when the interstitial ad was loaded successfully.
|
|
||||||
// AdInfo parameter includes information about the loaded ad
|
|
||||||
override fun onAdReady(adInfo: AdInfo) {
|
|
||||||
listener.onLoaded()
|
|
||||||
Log.d(TAG, "----onAdReady adInfo=${adInfo.instanceName}")
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Indicates that the ad failed to be loaded
|
|
||||||
override fun onAdLoadFailed(error: IronSourceError) {
|
|
||||||
listener.onLoadFail()
|
|
||||||
Log.d(TAG, "----onAdLoadFailed error=${error.errorMessage}")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invoked when the Interstitial Ad Unit has opened, and user left the application screen.
|
|
||||||
// This is the impression indication.
|
|
||||||
override fun onAdOpened(adInfo: AdInfo) {
|
|
||||||
// Log.d(TAG, "----onAdOpened adInfo=${adInfo.adUnit}")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invoked when the interstitial ad closed and the user went back to the application screen.
|
|
||||||
override fun onAdClosed(adInfo: AdInfo) {
|
|
||||||
listener.onClose()
|
|
||||||
// Log.d(TAG, "----onAdClosed adInfo=${adInfo.adUnit}")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invoked when the ad failed to show
|
|
||||||
override fun onAdShowFailed(error: IronSourceError, adInfo: AdInfo) {
|
|
||||||
listener.onShowFail()
|
|
||||||
// Log.d(TAG, "----onAdShowFailed error=${error.errorMessage}")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invoked when end user clicked on the interstitial ad
|
|
||||||
override fun onAdClicked(adInfo: AdInfo) {
|
|
||||||
// Log.d(TAG, "----onAdClicked adInfo=${adInfo.adUnit}")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invoked before the interstitial ad was opened, and before the InterstitialOnAdOpenedEvent is reported.
|
|
||||||
// This callback is not supported by all networks, and we recommend using it only if
|
|
||||||
// it's supported by all networks you included in your build.
|
|
||||||
override fun onAdShowSucceeded(adInfo: AdInfo) {
|
|
||||||
listener.onShowSuccess()
|
|
||||||
// Log.d(TAG, "----onAdShowSucceeded adInfo=${adInfo.adUnit}")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@JvmStatic
|
|
||||||
fun loadAd() {
|
|
||||||
IronSource.loadInterstitial()
|
|
||||||
}
|
|
||||||
|
|
||||||
@JvmStatic
|
|
||||||
fun showWelComeAd(totalTim: Long, activity: Activity, place: String, actionGoMain: () -> Unit):CountDownTimer {
|
|
||||||
var needShow = true
|
|
||||||
val myTimer = object : CountDownTimer(totalTim, 100) {
|
|
||||||
override fun onTick(millisUntilFinished: Long) {
|
|
||||||
if (needShow) {
|
|
||||||
showAd(activity, place) {
|
|
||||||
if (it == HAS_CACHE) {
|
|
||||||
needShow = false
|
|
||||||
}
|
|
||||||
if (it == SHOW_FAIL) {
|
|
||||||
needShow = true
|
|
||||||
}
|
|
||||||
if (it == SHOW_CLOSE) {
|
|
||||||
actionGoMain.invoke()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onFinish() {
|
|
||||||
if (needShow) {
|
|
||||||
showAd(activity, place) {
|
|
||||||
if (it == SHOW_FAIL || it == NO_CACHE || it == SHOW_CLOSE) {
|
|
||||||
actionGoMain.invoke()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
myTimer.start()
|
|
||||||
|
|
||||||
return myTimer
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@JvmStatic
|
|
||||||
fun showAd(activity: Activity, place: String, action: (result: Int) -> Unit) {
|
|
||||||
if (IronSource.isInterstitialReady()) {
|
|
||||||
action.invoke(HAS_CACHE)
|
|
||||||
Log.d(TAG, "----isInterstitialReady")
|
|
||||||
setAdCallBack(object : IronListener {
|
|
||||||
override fun onLoaded() {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onLoadFail() {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onClose() {
|
|
||||||
Log.d(TAG, "----onClose=" + Thread.currentThread().name)
|
|
||||||
loadAd()
|
|
||||||
action.invoke(SHOW_CLOSE)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onShowFail() {
|
|
||||||
action.invoke(SHOW_FAIL)
|
|
||||||
Log.d(TAG, "----onShowFail=" + Thread.currentThread().name)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onShowSuccess() {
|
|
||||||
action.invoke(SHOW_SUCCESS)
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
|
||||||
IronSource.showInterstitial(activity, place)
|
|
||||||
} else {
|
|
||||||
Log.d(TAG, "----no cache")
|
|
||||||
action.invoke(NO_CACHE)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -8,7 +8,6 @@ import android.os.CountDownTimer;
|
|||||||
|
|
||||||
import com.draw.painting.test.R;
|
import com.draw.painting.test.R;
|
||||||
import com.draw.painting.test.databinding.ActivityAlaucherBinding;
|
import com.draw.painting.test.databinding.ActivityAlaucherBinding;
|
||||||
import com.draw.painting.test.ironad.IronSourceAd;
|
|
||||||
import com.draw.painting.test.manager.Utils;
|
import com.draw.painting.test.manager.Utils;
|
||||||
|
|
||||||
import kotlin.Unit;
|
import kotlin.Unit;
|
||||||
@ -17,7 +16,7 @@ import kotlin.jvm.functions.Function0;
|
|||||||
public class ALaucherActivity extends AppCompatActivity {
|
public class ALaucherActivity extends AppCompatActivity {
|
||||||
|
|
||||||
private ActivityAlaucherBinding binding;
|
private ActivityAlaucherBinding binding;
|
||||||
private long time = 11000;
|
private long time = 2000;
|
||||||
private CountDownTimer countDownTimer;
|
private CountDownTimer countDownTimer;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -25,18 +24,31 @@ public class ALaucherActivity extends AppCompatActivity {
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
binding = ActivityAlaucherBinding.inflate(getLayoutInflater());
|
binding = ActivityAlaucherBinding.inflate(getLayoutInflater());
|
||||||
setContentView(binding.getRoot());
|
setContentView(binding.getRoot());
|
||||||
Utils.setStatusBarTextColor(this,true);
|
Utils.setStatusBarTextColor(this, true);
|
||||||
|
|
||||||
countDownTimer = IronSourceAd.showWelComeAd(time, ALaucherActivity.this, IronSourceAd.adPlace1, new Function0<Unit>() {
|
// countDownTimer = IronSourceAd.showWelComeAd(time, ALaucherActivity.this, IronSourceAd.adPlace1, new Function0<Unit>() {
|
||||||
|
// @Override
|
||||||
|
// public Unit invoke() {
|
||||||
|
// enterMain();
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
|
countDownTimer = new CountDownTimer(time, 200) {
|
||||||
@Override
|
@Override
|
||||||
public Unit invoke() {
|
public void onTick(long millisUntilFinished) {
|
||||||
enterMain();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enterMain(){
|
@Override
|
||||||
|
public void onFinish() {
|
||||||
|
enterMain();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
countDownTimer.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void enterMain() {
|
||||||
Intent intent = new Intent(ALaucherActivity.this, HomeActivity.class);
|
Intent intent = new Intent(ALaucherActivity.this, HomeActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
finish();
|
finish();
|
||||||
@ -45,7 +57,7 @@ public class ALaucherActivity extends AppCompatActivity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
if(countDownTimer!= null){
|
if (countDownTimer != null) {
|
||||||
countDownTimer.cancel();
|
countDownTimer.cancel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,23 +2,18 @@ package com.draw.painting.test.ui;
|
|||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import com.draw.painting.test.PaintingApp;
|
import com.draw.painting.test.PaintingApp;
|
||||||
import com.draw.painting.test.adapter.HomeAdapter;
|
import com.draw.painting.test.adapter.HomeAdapter;
|
||||||
import com.draw.painting.test.databinding.FragmentHomeBinding;
|
import com.draw.painting.test.databinding.FragmentHomeBinding;
|
||||||
import com.draw.painting.test.ironad.IronSourceAd;
|
|
||||||
import com.draw.painting.test.onClickListener;
|
import com.draw.painting.test.onClickListener;
|
||||||
|
|
||||||
import kotlin.Unit;
|
|
||||||
import kotlin.jvm.functions.Function1;
|
|
||||||
|
|
||||||
public class HomeFragment extends Fragment implements onClickListener {
|
public class HomeFragment extends Fragment implements onClickListener {
|
||||||
private static final String ARG_PARAM1 = "param1";
|
private static final String ARG_PARAM1 = "param1";
|
||||||
private static final String ARG_PARAM2 = "param2";
|
private static final String ARG_PARAM2 = "param2";
|
||||||
@ -63,16 +58,6 @@ public class HomeFragment extends Fragment implements onClickListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClickItem(boolean viewAll,String dir) {
|
public void onClickItem(boolean viewAll,String dir) {
|
||||||
String place;
|
|
||||||
if(viewAll){
|
|
||||||
place = IronSourceAd.adPlace2;
|
|
||||||
}else {
|
|
||||||
place = IronSourceAd.adPlace3;
|
|
||||||
}
|
|
||||||
IronSourceAd.showAd(requireActivity(), place, new Function1<Integer, Unit>() {
|
|
||||||
@Override
|
|
||||||
public Unit invoke(Integer integer) {
|
|
||||||
if (integer == IronSourceAd.SHOW_FAIL || integer == IronSourceAd.NO_CACHE || integer == IronSourceAd.SHOW_CLOSE){
|
|
||||||
|
|
||||||
Intent intent;
|
Intent intent;
|
||||||
if(viewAll){
|
if(viewAll){
|
||||||
@ -84,10 +69,33 @@ public class HomeFragment extends Fragment implements onClickListener {
|
|||||||
}
|
}
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
// String place;
|
||||||
});
|
// if(viewAll){
|
||||||
|
// place = IronSourceAd.adPlace2;
|
||||||
|
// }else {
|
||||||
|
// place = IronSourceAd.adPlace3;
|
||||||
|
// }
|
||||||
|
// IronSourceAd.showAd(requireActivity(), place, new Function1<Integer, Unit>() {
|
||||||
|
// @Override
|
||||||
|
// public Unit invoke(Integer integer) {
|
||||||
|
// if (integer == IronSourceAd.SHOW_FAIL || integer == IronSourceAd.NO_CACHE || integer == IronSourceAd.SHOW_CLOSE){
|
||||||
|
//
|
||||||
|
// Intent intent;
|
||||||
|
// if(viewAll){
|
||||||
|
// intent = new Intent(requireContext(), PreViewActivity.class);
|
||||||
|
// intent.putExtra(PaintingApp.Key_ViewDir, dir);
|
||||||
|
// }else {
|
||||||
|
// intent = new Intent(requireContext(), CameraActivity.class);
|
||||||
|
// intent.putExtra(PaintingApp.Key_Camera,dir);
|
||||||
|
// }
|
||||||
|
// startActivity(intent);
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -10,5 +10,5 @@
|
|||||||
<string name="version">Version</string>
|
<string name="version">Version</string>
|
||||||
<string name="version_code">V%s</string>
|
<string name="version_code">V%s</string>
|
||||||
<string name="permission_fail">Please grant the relevant permissions and try again.</string>
|
<string name="permission_fail">Please grant the relevant permissions and try again.</string>
|
||||||
<string name="url_privacy">https://play.google.com/store/apps/details?id=com.draw.painting.helper</string>
|
<string name="url_privacy">https://sites.google.com/view/httpprivates</string>
|
||||||
</resources>
|
</resources>
|
||||||
@ -1,6 +1,6 @@
|
|||||||
// 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.
|
||||||
plugins {
|
plugins {
|
||||||
id("com.android.application") version "8.1.3" apply false
|
id("com.android.application") version "8.1.0" apply false
|
||||||
id("org.jetbrains.kotlin.android") version "1.8.20" apply false
|
id("org.jetbrains.kotlin.android") version "1.8.20" apply false
|
||||||
id("com.google.gms.google-services") version "4.3.15" apply false
|
id("com.google.gms.google-services") version "4.3.15" apply false
|
||||||
id ("com.google.firebase.crashlytics") version "2.9.2" apply false
|
id ("com.google.firebase.crashlytics") version "2.9.2" apply false
|
||||||
|
|||||||
@ -10,14 +10,14 @@ dependencyResolutionManagement {
|
|||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
maven ("https://android-sdk.is.com/")
|
// maven ("https://android-sdk.is.com/")
|
||||||
//Mintegral
|
// //Mintegral
|
||||||
maven ("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea")
|
// maven ("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea")
|
||||||
//Pangle
|
// //Pangle
|
||||||
maven ("https://artifact.bytedance.com/repository/pangle")
|
// maven ("https://artifact.bytedance.com/repository/pangle")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rootProject.name = "Painting Helper"
|
rootProject.name = "Painting_Helper"
|
||||||
include(":app")
|
include(":app")
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user