diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1492d83..d078e3c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,9 +4,14 @@ import java.text.SimpleDateFormat plugins { id("com.android.application") id("org.jetbrains.kotlin.android") -// id("com.google.firebase.crashlytics") -// id("com.google.gms.google-services") + id("com.google.firebase.crashlytics") + id("com.google.gms.google-services") id("io.objectbox") + id("applovin-quality-service") +} + +applovin { + apiKey = "RkJ4uN2wPxinqC46TRWoUqBTNRzwxysDcngDUptwTsMToAruLFb7SC1kFD1lvn5GNulmqtTSA2auGrWN7qGoQl" } val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date()) android { @@ -18,8 +23,9 @@ android { applicationId = "com.study.sketch.learning" minSdk = 24 targetSdk = 35 - versionCode = 1 - versionName = "1.0" + versionCode = 2 + + versionName = "1.1" setProperty( "archivesBaseName", "Sketching Learning_V" + versionName + "(${versionCode})_$timestamp" @@ -71,4 +77,31 @@ dependencies { //noinspection GradleDependency implementation("androidx.camera:camera-extensions:${camerax_version}") + implementation(platform("com.google.firebase:firebase-bom:33.7.0")) + // When using the BoM, you don't specify versions in Firebase library dependencies + // Add the dependency for the Firebase SDK for Google Analytics + implementation("com.google.firebase:firebase-analytics") + implementation("com.google.firebase:firebase-crashlytics") + implementation("com.google.firebase:firebase-config") + + + implementation ("com.squareup.okhttp3:okhttp:4.12.0") + implementation("com.squareup.okhttp3:logging-interceptor:4.12.0") + + implementation(files("libs/UpLoadLibrary_07_03_11_54-release.aar")) + implementation(files("libs/MaxLibrary_08_08_15_08-release.aar")) + + //Max(BIGO Ads、Chartboost、DT Exchange、InMobi、ironSource、Liftoff Monetize、Mintegral、Pangle) + implementation("com.applovin:applovin-sdk:+") + implementation("com.applovin.mediation:bigoads-adapter:+") + implementation("com.applovin.mediation:chartboost-adapter:+") + implementation("com.google.android.gms:play-services-base:16.1.0") + implementation("com.applovin.mediation:fyber-adapter:+") + implementation("com.applovin.mediation:inmobi-adapter:+") + implementation("com.squareup.picasso:picasso:2.8") + implementation("androidx.recyclerview:recyclerview:1.1.0") + implementation("com.applovin.mediation:ironsource-adapter:+") + implementation("com.applovin.mediation:vungle-adapter:+") + implementation("com.applovin.mediation:mintegral-adapter:+") + implementation("com.applovin.mediation:bytedance-adapter:+") } \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..b8ee0dc --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "1006723805024", + "project_id": "sketch-learning", + "storage_bucket": "sketch-learning.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:1006723805024:android:65aae69322bd5af73df805", + "android_client_info": { + "package_name": "com.study.sketch.learning" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDswPI7kv0gd5Rjj9Dp1aL1H6P_-yY2w5Y" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/libs/MaxLibrary_08_08_15_08-release.aar b/app/libs/MaxLibrary_08_08_15_08-release.aar new file mode 100644 index 0000000..c2ce202 Binary files /dev/null and b/app/libs/MaxLibrary_08_08_15_08-release.aar differ diff --git a/app/libs/UpLoadLibrary_07_03_11_54-release.aar b/app/libs/UpLoadLibrary_07_03_11_54-release.aar new file mode 100644 index 0000000..5a50672 Binary files /dev/null and b/app/libs/UpLoadLibrary_07_03_11_54-release.aar differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd79ef1..074e1c4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,6 +26,7 @@ android:label="@string/app_name" android:roundIcon="@mipmap/drawing_icon" android:supportsRtl="true" + android:networkSecurityConfig="@xml/net" android:theme="@style/Theme.PaintingHelper" tools:targetApi="31"> diff --git a/app/src/main/java/com/study/sketch/learning/SketchingApp.java b/app/src/main/java/com/study/sketch/learning/SketchingApp.java index e09b84e..0c18bb0 100644 --- a/app/src/main/java/com/study/sketch/learning/SketchingApp.java +++ b/app/src/main/java/com/study/sketch/learning/SketchingApp.java @@ -4,7 +4,9 @@ import android.app.Application; import android.content.res.AssetManager; import android.graphics.Typeface; +import com.ad.maxlibrary.MaxInitManager; import com.study.sketch.learning.database.MyDb; +import com.up.uploadlibrary.UpLoadManager; import java.util.ArrayList; import java.util.Collections; @@ -20,9 +22,7 @@ public class SketchingApp extends Application { public static SketchingApp app; -// private String APPId ="h67505d35951dc"; -// -// private String AppKey ="a81d17e5cc10cd96a65fe75c0ffd15334"; + public static Typeface defaultFont; @@ -33,29 +33,20 @@ public class SketchingApp extends Application { AssetManager assets = getAssets(); defaultFont = Typeface.createFromAsset(assets, "font.ttf"); + UpLoadManager.INSTANCE.init(this,TAG); + MaxInitManager.INSTANCE.init( + this, + "JMeJ_zoCmLQanoRonVSe2Enge8a9nbn42zicsx1WI6o_8HiX6M5KleETOJBowqzbycmbn_iART4rFyC8m6uOi9", + "f07d4c39d27093bd", + "44efc5eed0c85f2f", + "6f68d59368c99ff3", + TAG + ); MyDb.init(this); } -// private void initSDk(){ -// ATSDK.checkIsEuTraffic(this, new NetTrafficeCallback() { -// -// @Override -// public void onResultCallback(boolean isEU) { -// if (isEU && ATSDK.getGDPRDataLevel(MyApplication.this) == ATSDK.UNKNOWN) { -// ATSDK.showGdprAuth(MyApplication.this); -// } -// -// } -// -// @Override -// public void onErrorCallback(String errorMsg) { -// -// } -// }); -// ATSDK.init( this, APPId, AppKey); -// ; -// } + public static String Class_Animals = "Animals"; public static String Class_birds = "Birds"; diff --git a/app/src/main/java/com/study/sketch/learning/activity/ActivityAllInfo.java b/app/src/main/java/com/study/sketch/learning/activity/ActivityAllInfo.java index 0210099..fbdf47b 100644 --- a/app/src/main/java/com/study/sketch/learning/activity/ActivityAllInfo.java +++ b/app/src/main/java/com/study/sketch/learning/activity/ActivityAllInfo.java @@ -6,6 +6,8 @@ import android.view.View; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.GridLayoutManager; +import com.ad.maxlibrary.MaxManager; +import com.ad.maxlibrary.onAdAfterAction; import com.study.sketch.learning.SketchingApp; import com.study.sketch.learning.databinding.ActivityAllInfoBinding; import com.study.sketch.learning.item.AdapterAllInfo; @@ -31,10 +33,16 @@ public class ActivityAllInfo extends AppCompatActivity { dirStr = getIntent().getStringExtra(SketchingApp.Key_ViewDir); preViewBinding.categoryName.setText(dirStr.substring(dirStr.lastIndexOf("_") + 1)); - + MaxManager.onLoadAd(); onInitList(); onInitClick(); + MaxManager.startShowMaxAd(this, new onAdAfterAction() { + @Override + public void onAction() { + + } + }); } private void onInitList() { diff --git a/app/src/main/java/com/study/sketch/learning/activity/ActivitySketching.java b/app/src/main/java/com/study/sketch/learning/activity/ActivitySketching.java index fa516fa..1c493c1 100644 --- a/app/src/main/java/com/study/sketch/learning/activity/ActivitySketching.java +++ b/app/src/main/java/com/study/sketch/learning/activity/ActivitySketching.java @@ -31,6 +31,8 @@ import androidx.camera.view.PreviewView; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; +import com.ad.maxlibrary.MaxManager; +import com.ad.maxlibrary.onAdAfterAction; import com.study.sketch.learning.database.MyDb; import com.study.sketch.learning.manager.Common; import com.google.common.util.concurrent.ListenableFuture; @@ -79,6 +81,7 @@ public class ActivitySketching extends AppCompatActivity implements View.OnTouch Intent intent = getIntent(); isMain = intent.getBooleanExtra(SketchingApp.Key_ISMAIN, false); + MaxManager.onLoadAd(); previewView = findViewById(R.id.preview); imageView = findViewById(R.id.image); @@ -131,6 +134,12 @@ public class ActivitySketching extends AppCompatActivity implements View.OnTouch init(); initClick(); + MaxManager.startShowMaxAd(this, new onAdAfterAction() { + @Override + public void onAction() { + + } + }); } @@ -216,9 +225,15 @@ public class ActivitySketching extends AppCompatActivity implements View.OnTouch flashIm.setSelected(!selected); camera.getCameraControl().enableTorch(!selected); } else if (v.equals(imPhoto)) { - Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); - intent.setType("image/*"); - intentActivityResultLauncher.launch(intent); + MaxManager.startShowMaxAd(ActivitySketching.this, new onAdAfterAction() { + @Override + public void onAction() { + Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + intent.setType("image/*"); + intentActivityResultLauncher.launch(intent); + } + }); + } else if (v.equals(imZoom)) { if (seekBar.getVisibility() == View.VISIBLE) { seekBar.setVisibility(View.GONE); diff --git a/app/src/main/java/com/study/sketch/learning/activity/ActivitySplash.java b/app/src/main/java/com/study/sketch/learning/activity/ActivitySplash.java index 886f140..e4cdc36 100644 --- a/app/src/main/java/com/study/sketch/learning/activity/ActivitySplash.java +++ b/app/src/main/java/com/study/sketch/learning/activity/ActivitySplash.java @@ -6,14 +6,19 @@ import android.os.CountDownTimer; import androidx.appcompat.app.AppCompatActivity; +import com.ad.maxlibrary.WelComManager; import com.study.sketch.learning.R; import com.study.sketch.learning.databinding.ActivitySplashBinding; import com.study.sketch.learning.manager.Common; +import kotlin.Unit; +import kotlin.jvm.functions.Function0; +import kotlin.jvm.functions.Function1; + public class ActivitySplash extends AppCompatActivity { private ActivitySplashBinding binding; - private long time = 1500; + private long time = 14000; private CountDownTimer countDownTimer; @@ -25,22 +30,23 @@ public class ActivitySplash extends AppCompatActivity { setContentView(binding.getRoot()); Common.setStatusBarTextColor(this, true); - - countDownTimer= new CountDownTimer(time,100) { + countDownTimer = WelComManager.initTimer(this, time, new Function1() { @Override - public void onTick(long millisUntilFinished) { - int progressPercentage = (int) ((100 * millisUntilFinished) / time); + public Unit invoke(Long aLong) { + int progressPercentage = (int) ((100 * aLong) / time); int Percentage = 100 - progressPercentage; binding.loadingPb.setProgress(Percentage); binding.tvProgress.setText(getString(R.string.text_progress,Percentage)); + return null; } - + }, new Function0() { @Override - public void onFinish() { + public Unit invoke() { enterMain(); + return null; } - }; - countDownTimer.start(); + }); + } private void enterMain() { binding.tvProgress.setText(getString(R.string.text_progress,100)); diff --git a/app/src/main/java/com/study/sketch/learning/fragment/FragmentGallery.java b/app/src/main/java/com/study/sketch/learning/fragment/FragmentGallery.java index 29ca0a3..27d052d 100644 --- a/app/src/main/java/com/study/sketch/learning/fragment/FragmentGallery.java +++ b/app/src/main/java/com/study/sketch/learning/fragment/FragmentGallery.java @@ -19,6 +19,8 @@ import androidx.activity.result.contract.ActivityResultContracts; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.GridLayoutManager; +import com.ad.maxlibrary.MaxManager; +import com.ad.maxlibrary.onAdAfterAction; import com.study.sketch.learning.R; import com.study.sketch.learning.SketchingApp; import com.study.sketch.learning.database.BeanImport; @@ -71,7 +73,13 @@ public class FragmentGallery extends Fragment { binding.btnImport.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - checkPermission(); + MaxManager.startShowMaxAd(requireActivity(), new onAdAfterAction() { + @Override + public void onAction() { + checkPermission(); + } + }); + } }); diff --git a/app/src/main/res/xml/net.xml b/app/src/main/res/xml/net.xml new file mode 100644 index 0000000..0ac6102 --- /dev/null +++ b/app/src/main/res/xml/net.xml @@ -0,0 +1,6 @@ + + + + mobile-server.lux-ad.com + + diff --git a/build.gradle.kts b/build.gradle.kts index e90cfe7..d440b33 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,12 +2,17 @@ plugins { id("com.android.application") version "8.6.0" apply false id("org.jetbrains.kotlin.android") version "2.0.0" 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.gms.google-services") version "4.3.15" apply false + id ("com.google.firebase.crashlytics") version "2.9.2" apply false } buildscript{ + repositories { + maven { url = uri("https://artifacts.applovin.com/android") } + } dependencies{ classpath("io.objectbox:objectbox-gradle-plugin:4.0.3") + classpath ("com.applovin.quality:AppLovinQualityServiceGradlePlugin:+") } + } \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 966cb91..7dc8031 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -13,7 +13,9 @@ dependencyResolutionManagement { google() mavenCentral() - + maven { url = uri("https://cboost.jfrog.io/artifactory/chartboost-ads/") } + maven { url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") } + maven { url = uri("https://artifact.bytedance.com/repository/pangle") } } }