diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b6e9da8..4c0f9cf 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -9,6 +9,8 @@ plugins { id("org.jetbrains.kotlin.android") kotlin("kapt") id ("kotlin-android") + id("com.google.gms.google-services") + id("com.google.firebase.crashlytics") } val keystorePropertiesFile = rootProject.file("keystore.properties") val keystoreProperties = Properties().apply { @@ -22,8 +24,8 @@ android { applicationId = "com.joyful.euphoria.board" minSdk = 24 targetSdk = 36 - versionCode = 2 - versionName = "1.1" + versionCode = 3 + versionName = "1.2" setProperty( "archivesBaseName", "EuphoriaBoard_V" + versionName + "(${versionCode})_$timestamp" @@ -100,4 +102,87 @@ dependencies { // Android平台协程支持 implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4") + implementation(platform("com.google.firebase:firebase-bom:33.7.0")) + implementation("com.google.firebase:firebase-crashlytics") + implementation("com.google.firebase:firebase-analytics") + implementation("com.google.firebase:firebase-config") + + + implementation(files("libs/TradPlusLibrary_01_04_12_20-release.aar")) + // ---------------------TradPlus + implementation("com.tradplusad:tradplus:15.2.0.1") + implementation("androidx.legacy:legacy-support-v4:1.0.0") + implementation("androidx.appcompat:appcompat:1.3.0-alpha02") + + // IronSource + implementation("com.ironsource.sdk:mediationsdk:9.0.0") + implementation("com.tradplusad:tradplus-ironsource:10.15.2.0.1") + + // Pangle + implementation("com.tradplusad:tradplus-pangle:19.15.2.0.1") + implementation("com.pangle.global:pag-sdk:7.8.0.7") + + // UnityAds + implementation("com.tradplusad:tradplus-unity:5.15.2.0.1") + implementation("com.unity3d.ads:unity-ads:4.16.3") + + // Chartboost +// implementation("com.tradplusad:tradplus-chartboostx:15.15.2.0.1") +// implementation("com.chartboost:chartboost-sdk:9.10.0") +// implementation("com.google.android.gms:play-services-ads-identifier:17.0.0") +// implementation("com.google.android.gms:play-services-base:17.4.0") + + + //上面新版本下载失败用旧版本 + implementation("com.tradplusad:tradplus-chartboostx:15.14.5.0.1") + implementation("com.chartboost:chartboost-sdk:9.8.3") + implementation("com.google.android.gms:play-services-ads-identifier:17.0.0") + implementation("com.google.android.gms:play-services-base:17.4.0") + + // InMobi + implementation("com.tradplusad:tradplus-inmobix:23.15.2.0.1") + implementation("com.inmobi.monetization:inmobi-ads-kotlin:11.0.0") + implementation("com.squareup.okhttp3:okhttp:3.14.9") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4") + implementation("androidx.core:core-ktx:1.5.0") + implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.0") + + implementation("com.google.android.gms:play-services-ads-identifier:18.0.1") + implementation("com.google.android.gms:play-services-location:21.0.1") // optional + implementation("androidx.browser:browser:1.8.0") + implementation("com.squareup.picasso:picasso:2.8") + implementation("androidx.viewpager:viewpager:1.0.0") + implementation("androidx.recyclerview:recyclerview:1.2.1") + + // Fyber + implementation("com.fyber:marketplace-sdk:8.4.0") + implementation("com.tradplusad:tradplus-fyber:24.15.2.0.1") + implementation("com.google.android.gms:play-services-ads-identifier:17.0.0") + implementation("com.google.android.gms:play-services-base:17.4.0") + + // Mintegral + implementation("com.tradplusad:tradplus-mintegralx_overseas:18.15.2.0.1") + implementation("androidx.recyclerview:recyclerview:1.1.0") + implementation("com.mbridge.msdk.oversea:mbridge_android_sdk:16.10.11") + + // Liftoff (Vungle) + implementation("com.tradplusad:tradplus-vunglex:7.15.2.0.1") + implementation("com.vungle:vungle-ads:7.6.0") + + // Bigo + implementation("com.bigossp:bigo-ads:5.5.2") + implementation("com.tradplusad:tradplus-bigo:57.15.2.0.1") + + // Cross Promotion + implementation("com.tradplusad:tradplus-crosspromotion:27.15.2.0.1") + + // TP Exchange(注意与主包版本同步) + implementation("com.google.code.gson:gson:2.8.6") + implementation("com.tradplusad:tp_exchange:40.15.2.0.1") + + // Google UMP + implementation ("com.google.android.ump:user-messaging-platform:3.2.0") + + + } \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..1652fef --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "367366033615", + "project_id": "euphoria-board", + "storage_bucket": "euphoria-board.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:367366033615:android:2e4373761a528d9a3c67ba", + "android_client_info": { + "package_name": "com.joyful.euphoria.board" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyCukTM4rS_pll5tA_tm6elJHMYUn5KjBDo" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/libs/TradPlusLibrary_01_04_12_20-release.aar b/app/libs/TradPlusLibrary_01_04_12_20-release.aar new file mode 100644 index 0000000..de049ac Binary files /dev/null and b/app/libs/TradPlusLibrary_01_04_12_20-release.aar differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index faf4ca8..8ea412d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,9 +13,7 @@ android:supportsRtl="true" android:theme="@style/MyKeyBoard" tools:targetApi="31"> - + val percentage: Float = 100 - millisUntilFinished.toFloat() / countTime * 100 val round = percentage.roundToInt() progressBar.progress = round - } - - override fun onFinish() { - progressBar.progress = 100 - toHome() - } - + }){ + progressBar.progress = 100 + toHome() } timer.start() diff --git a/app/src/main/java/com/joyful/euphoria/board/xmlactivity/CategoryXML.java b/app/src/main/java/com/joyful/euphoria/board/xmlactivity/CategoryXML.java deleted file mode 100644 index 1d22293..0000000 --- a/app/src/main/java/com/joyful/euphoria/board/xmlactivity/CategoryXML.java +++ /dev/null @@ -1,172 +0,0 @@ -package com.joyful.euphoria.board.xmlactivity; - -import android.content.Intent; -import android.os.Bundle; -import android.util.Log; -import android.view.View; -import android.widget.TextView; -import android.widget.Toast; - -import androidx.activity.EdgeToEdge; -import androidx.appcompat.app.AppCompatActivity; -import androidx.core.graphics.Insets; -import androidx.core.view.ViewCompat; -import androidx.core.view.WindowInsetsCompat; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; -import com.joyful.euphoria.board.R; -import com.joyful.euphoria.board.recyclerview.RecyclerviewCategory; -import com.joyful.euphoria.board.beaned.BeanDetails; -import com.joyful.euphoria.board.beaned.BeanWrapper; -import com.joyful.euphoria.board.database.CategoryData; -import com.joyful.euphoria.board.database.BoardData; -import com.joyful.euphoria.board.EuphoriaBoard; -import com.joyful.euphoria.board.utils.FileUtils; -import com.joyful.euphoria.board.utils.ListDecorationUtils; -import java.util.ArrayList; -import java.util.List; - -public class CategoryXML extends AppCompatActivity { - private static final String TAG = "CategoryActivity"; - public static final String KEY_CATEGORY_NAME = "category_name"; - - private RecyclerView rvCateKeyboard; - private View llCateEmpty; - private View ivCateBack; - private TextView tvCateTitle; - private RecyclerviewCategory mCateKeyboardAdapter; - private List mKeyboardList = new ArrayList<>(); - private List mCategoryDataList = new ArrayList<>(); - private String mCurrentCategoryName; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - EdgeToEdge.enable(this); - setContentView(R.layout.activity_category_xml); - ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.category), (v, insets) -> { - Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); - v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); - return insets; - }); - initView(); - getIntentData(); - initAdapter(); - loadCategoryData(); - loadKeyboardDataByCategory(); - } - - private void initView() { - rvCateKeyboard = findViewById(R.id.rv_cate_keyboard); - llCateEmpty = findViewById(R.id.ll_cate_empty); - ivCateBack = findViewById(R.id.iv_cate_back); - tvCateTitle = findViewById(R.id.tv_cate_title); - - ivCateBack.setOnClickListener(v -> finish()); - } - - private void getIntentData() { - mCurrentCategoryName = getIntent().getStringExtra(KEY_CATEGORY_NAME); - tvCateTitle.setText(mCurrentCategoryName == null ? "未知分类" : mCurrentCategoryName); - } - - private void initAdapter() { - mCateKeyboardAdapter = new RecyclerviewCategory(this, mKeyboardList); - GridLayoutManager layoutManager = new GridLayoutManager(this, 1); - rvCateKeyboard.setLayoutManager(layoutManager); - ListDecorationUtils decoration = new ListDecorationUtils(10, 10, 0); - rvCateKeyboard.addItemDecoration(decoration); - rvCateKeyboard.setAdapter(mCateKeyboardAdapter); - - // 键盘点击跳转Set界面 - mCateKeyboardAdapter.setOnCategoryKeyboardClickListener(bean -> { - if (bean == null || bean.getTitleName() == null) { - Toast.makeText(CategoryXML.this, "键盘数据异常", Toast.LENGTH_SHORT).show(); - return; - } - Intent intent = new Intent(CategoryXML.this, DownloadXML.class); - intent.putExtra(DownloadXML.SOURCE_KEY, bean); - intent.putExtra(DownloadXML.NAME_KEY, bean.getTitleName()); - intent.putExtra(DownloadXML.DISPLAY_URL_KEY, bean.getImgPath()); - intent.putExtra(DownloadXML.GIF_KEY, bean.getImgGif()); - intent.putExtra(DownloadXML.THUMB_KEY, bean.getThumbUrl()); - intent.putExtra(DownloadXML.ZIP_URL_KEY, bean.getZipPath()); - startActivity(intent); - }); - } - - private void loadCategoryData() { - try { - mCategoryDataList = FileUtils.readCategoryJsonFromAssets(this, "res.json"); - Log.d(TAG, "加载分类原始数据条数:" + mCategoryDataList.size()); - } catch (Exception e) { - Log.e(TAG, "加载分类原始数据失败", e); - } - } - - private void loadKeyboardDataByCategory() { - if (mCurrentCategoryName == null || mCategoryDataList.isEmpty()) { - showEmptyState(); - return; - } - - mKeyboardList.clear(); - // 从JSON原始数据加载 - for (CategoryData categoryData : mCategoryDataList) { - if (categoryData == null || !mCurrentCategoryName.equalsIgnoreCase(categoryData.getParent_name())) { - continue; - } - if (categoryData.getKeyboard_list() != null && !categoryData.getKeyboard_list().isEmpty()) { - for (BoardData boardData : categoryData.getKeyboard_list()) { - if (boardData == null) { - continue; - } - BeanDetails bean = new BeanDetails(); - bean.setTitleName(boardData.getTitle() != null ? boardData.getTitle() : "未知键盘"); - bean.setThumbUrl(boardData.getThumbUrl() != null ? boardData.getThumbUrl() : ""); - bean.setImgGif(boardData.getThumbUrlGif() != null ? boardData.getThumbUrlGif() : ""); - if (boardData.getDetail() != null && boardData.getDetail().getThemeContent() != null) { - bean.setImgPath(boardData.getDetail().getThemeContent().getImg() != null ? - boardData.getDetail().getThemeContent().getImg() : ""); - bean.setZipPath(boardData.getDetail().getThemeContent().getAndroidRawZipUrl() != null ? - boardData.getDetail().getThemeContent().getAndroidRawZipUrl() : ""); - } else { - bean.setImgPath(""); - bean.setZipPath(""); - } - mKeyboardList.add(bean); - } - } - break; - } - - // 备选:从DelightBoard全局数据加载 - if (mKeyboardList.isEmpty() && EuphoriaBoard.list != null && !EuphoriaBoard.list.isEmpty()) { - for (BeanWrapper wrapper : EuphoriaBoard.list) { - if (wrapper == null || !mCurrentCategoryName.equals(wrapper.getParentName())) { - continue; - } - mKeyboardList.addAll(wrapper.getKeyboardList()); - break; - } - } - - mCateKeyboardAdapter.notifyDataSetChanged(); - if (mKeyboardList.isEmpty()) { - showEmptyState(); - } else { - hideEmptyState(); - } - Log.d(TAG, "分类[" + mCurrentCategoryName + "]下加载键盘条数:" + mKeyboardList.size()); - } - - private void showEmptyState() { - rvCateKeyboard.setVisibility(View.GONE); - llCateEmpty.setVisibility(View.VISIBLE); - } - - private void hideEmptyState() { - rvCateKeyboard.setVisibility(View.VISIBLE); - llCateEmpty.setVisibility(View.GONE); - } -} \ No newline at end of file diff --git a/app/src/main/java/com/joyful/euphoria/board/xmlactivity/DownloadXML.kt b/app/src/main/java/com/joyful/euphoria/board/xmlactivity/DownloadXML.kt index a00a6e0..00f38bd 100644 --- a/app/src/main/java/com/joyful/euphoria/board/xmlactivity/DownloadXML.kt +++ b/app/src/main/java/com/joyful/euphoria/board/xmlactivity/DownloadXML.kt @@ -13,6 +13,7 @@ import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView import android.widget.Toast +import androidx.activity.OnBackPressedCallback import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.core.view.OnApplyWindowInsetsListener @@ -22,23 +23,24 @@ import androidx.core.view.isVisible import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.joyful.euphoria.board.EuphoriaBoard -import com.joyful.euphoria.board.R -import com.joyful.euphoria.board.beaned.BeanDetails -import com.joyful.euphoria.board.remember.OnItemClickRemember -import com.joyful.euphoria.board.remember.DownloadBoardRemember -import com.joyful.euphoria.board.assistant.DatabaseAssistant -import com.joyful.euphoria.board.recyclerview.RecyclerviewDownload -import com.joyful.euphoria.board.frag.Dialog -import com.joyful.euphoria.board.utils.Normal -import com.joyful.euphoria.board.utils.DealZipUtils -import com.joyful.euphoria.board.utils.SaveCurrentThemeUtils +import com.ad.tradpluslibrary.TPAdManager import com.bumptech.glide.Glide import com.bumptech.glide.integration.webp.decoder.WebpDrawable import com.bumptech.glide.load.DataSource import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.RequestListener import com.bumptech.glide.request.target.Target +import com.joyful.euphoria.board.EuphoriaBoard +import com.joyful.euphoria.board.R +import com.joyful.euphoria.board.assistant.DatabaseAssistant +import com.joyful.euphoria.board.beaned.BeanDetails +import com.joyful.euphoria.board.frag.Dialog +import com.joyful.euphoria.board.recyclerview.RecyclerviewDownload +import com.joyful.euphoria.board.remember.DownloadBoardRemember +import com.joyful.euphoria.board.remember.OnItemClickRemember +import com.joyful.euphoria.board.utils.DealZipUtils +import com.joyful.euphoria.board.utils.Normal +import com.joyful.euphoria.board.utils.SaveCurrentThemeUtils import kotlinx.coroutines.launch import java.io.File @@ -61,8 +63,10 @@ class DownloadXML : AppCompatActivity() { @JvmField val SOURCE_KEY = "data_key" + @JvmField val KEYBOARD_ID = "KEYBOARD_ID" + @JvmField val KEYBOARD_IMG = "KEYBOARD_IMG" @@ -87,7 +91,6 @@ class DownloadXML : AppCompatActivity() { private lateinit var imgLike: ImageView - private var data: BeanDetails? = null override fun onCreate(savedInstanceState: Bundle?) { @@ -101,7 +104,7 @@ class DownloadXML : AppCompatActivity() { v!!.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets }) - + TPAdManager.loadAllAd(this) // 检查存储权限 checkStoragePermission() @@ -110,12 +113,30 @@ class DownloadXML : AppCompatActivity() { displayData() // 后使用 setApply() onClick() + onBackPressedDispatcher.addCallback( + this, + object : OnBackPressedCallback(true) { + + override fun handleOnBackPressed() { + // 物理返回被拦截 + back() + } + }) + + TPAdManager.showTPAD(this@DownloadXML) {} + } + + private fun back() { + TPAdManager.showTPAD(this@DownloadXML) { + finish() + } } // 检查存储权限 private fun checkStoragePermission() { if (Environment.getExternalStorageState() != Environment.MEDIA_MOUNTED) { - Toast.makeText(this, getString(R.string.storage_not_available), Toast.LENGTH_SHORT).show() + Toast.makeText(this, getString(R.string.storage_not_available), Toast.LENGTH_SHORT) + .show() return } @@ -222,7 +243,8 @@ class DownloadXML : AppCompatActivity() { private fun onClick() { imgBack.setOnClickListener { - finish() + back() + } imgLike.setOnClickListener { @@ -237,7 +259,11 @@ class DownloadXML : AppCompatActivity() { } } catch (e: Exception) { Log.e("SetActivity", "Like operation error", e) - Toast.makeText(this@DownloadXML, getString(R.string.operation_failed), Toast.LENGTH_SHORT).show() + Toast.makeText( + this@DownloadXML, + getString(R.string.operation_failed), + Toast.LENGTH_SHORT + ).show() } } } @@ -257,8 +283,10 @@ class DownloadXML : AppCompatActivity() { }) } - layoutManager = LinearLayoutManager(this@DownloadXML, - LinearLayoutManager.HORIZONTAL, false) + layoutManager = LinearLayoutManager( + this@DownloadXML, + LinearLayoutManager.HORIZONTAL, false + ) addItemDecoration(object : RecyclerView.ItemDecoration() { override fun getItemOffsets( outRect: Rect, @@ -315,13 +343,17 @@ class DownloadXML : AppCompatActivity() { private fun setApply() { applyBtn.setOnClickListener { - val checkEnable = Normal.checkEnable(this) - val checkSetDefault = Normal.checkSetDefault(this) - if (!checkEnable || !checkSetDefault) { - showDialog() - return@setOnClickListener + TPAdManager.showTPAD(this@DownloadXML) { + val checkEnable = Normal.checkEnable(this) + val checkSetDefault = Normal.checkSetDefault(this) + if (!checkEnable || !checkSetDefault) { + showDialog() + return@showTPAD + } + startDown() + } - startDown() + } } @@ -342,7 +374,8 @@ class DownloadXML : AppCompatActivity() { if (!DealZipUtils.isValidZipUrl(zipUrl)) { // 调用工具类校验 runOnUiThread { - Toast.makeText(this, getString(R.string.invalid_download_url), Toast.LENGTH_SHORT).show() + Toast.makeText(this, getString(R.string.invalid_download_url), Toast.LENGTH_SHORT) + .show() applyBtn.isEnabled = true loadingLayout.isVisible = false } @@ -364,7 +397,8 @@ class DownloadXML : AppCompatActivity() { } else { if (zipUrl.isEmpty()) { runOnUiThread { - Toast.makeText(this, getString(R.string.download_url_error), Toast.LENGTH_SHORT).show() + Toast.makeText(this, getString(R.string.download_url_error), Toast.LENGTH_SHORT) + .show() applyBtn.isEnabled = true loadingLayout.isVisible = false } @@ -393,7 +427,11 @@ class DownloadXML : AppCompatActivity() { findFirstDirectory?.let { apply("${it}/") } ?: run { - Toast.makeText(this@DownloadXML, getString(R.string.file_error), Toast.LENGTH_SHORT).show() + Toast.makeText( + this@DownloadXML, + getString(R.string.file_error), + Toast.LENGTH_SHORT + ).show() } } } diff --git a/app/src/main/java/com/joyful/euphoria/board/xmlactivity/PreviewXML.java b/app/src/main/java/com/joyful/euphoria/board/xmlactivity/PreviewXML.java index 865af15..53fa18f 100644 --- a/app/src/main/java/com/joyful/euphoria/board/xmlactivity/PreviewXML.java +++ b/app/src/main/java/com/joyful/euphoria/board/xmlactivity/PreviewXML.java @@ -11,6 +11,7 @@ import android.view.ViewTreeObserver; import android.view.WindowManager; import androidx.activity.EdgeToEdge; +import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; @@ -18,6 +19,7 @@ import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; +import com.ad.tradpluslibrary.TPAdManager; import com.joyful.euphoria.board.R; import com.joyful.euphoria.board.databinding.ActivityPreviewXmlBinding; import com.joyful.euphoria.board.utils.KeyNamesUtils; @@ -30,6 +32,8 @@ import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.target.Target; import jp.wasabeef.glide.transformations.BlurTransformation; +import kotlin.Unit; +import kotlin.jvm.functions.Function0; public class PreviewXML extends AppCompatActivity { @@ -49,12 +53,27 @@ public class PreviewXML extends AppCompatActivity { v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); - + TPAdManager.INSTANCE.loadAllAd(this); onInit(); + + getOnBackPressedDispatcher().addCallback( + this, new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + back(); + } + }); } - - + private void back() { + TPAdManager.INSTANCE.showTPAD(PreviewXML.this, new Function0() { + @Override + public Unit invoke() { + finish(); + return null; + } + }); + } public void onInit() { @@ -66,14 +85,14 @@ public class PreviewXML extends AppCompatActivity { vb.idBack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - finish(); + back(); } }); if (curPath == null) { return; } - String bgPath = curPath+"res/drawable-xxhdpi-v4/"+ KeyNamesUtils.previewBg; + String bgPath = curPath + "res/drawable-xxhdpi-v4/" + KeyNamesUtils.previewBg; Drawable bgDraw = Normal.INSTANCE.getBgDrawable(this, bgPath); if (bgDraw != null) { diff --git a/build.gradle.kts b/build.gradle.kts index 6b4974f..7e19871 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,4 +3,6 @@ plugins { id("com.android.application") version "8.9.2" apply false id("org.jetbrains.kotlin.android") version "2.2.21" apply false kotlin("kapt") version "2.0.0" + id("com.google.gms.google-services") version "4.4.2" apply false + id ("com.google.firebase.crashlytics") version "3.0.2" apply false } diff --git a/settings.gradle.kts b/settings.gradle.kts index 2dc5873..ae6fd82 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -12,7 +12,27 @@ dependencyResolutionManagement { google() mavenCentral() maven("https://jitpack.io") + flatDir { + dirs("libs") + } + //------------------------- TradPlus + // Ironsource + maven { url = uri("https://android-sdk.is.com/") } + // Pangle + maven { url = uri("https://artifact.bytedance.com/repository/pangle") } + // Chartboost + maven { url = uri("https://cboost.jfrog.io/artifactory/chartboost-ads/") } + maven { + name = "Chartboost Mediation’s maven repo" + url = uri("https://cboost.jfrog.io/artifactory/chartboost-mediation") + } + // Mintegral + //Launch GP market application, Android X Version + //If you fail to pull the code using gradle, add the maven warehouse configuration to the project root build.gradle file + maven { + url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") + } } }