diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5216bee..3a92fe3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,22 +4,22 @@ 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") } val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date()) android { namespace = "com.sketch.art.trace" - compileSdk = 34 + compileSdk = 36 defaultConfig { //com.sketch.art.trace applicationId = "com.sketch.art.trace" - minSdk = 23 - targetSdk = 34 - versionCode = 1 - versionName = "1.0" + minSdk = 24 + targetSdk = 36 + versionCode = 2 + versionName = "1.1" setProperty( "archivesBaseName", "Sketch Art Trace_V" + versionName + "(${versionCode})_$timestamp" @@ -80,4 +80,91 @@ dependencies { implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2") implementation ("com.caverock:androidsvg:1.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/TopOnLibrary_06_27_16_00-release.aar")) + implementation(files("libs/UpLoadLibrary_06_27_16_55-release.aar")) + + + //-----------------------------------------------TopOn(Mintegral、Pangle、UnitAds、Digital Turbine(Fyber)、Chartboost&Helium、Ironsource、Liftoff(Vungle)、Inmobi、Start.io、Bigo) + //TU (Necessary) + implementation("com.thinkup.sdk:core-tpn:6.4.90") + implementation("com.thinkup.sdk:nativead-tpn:6.4.90") + implementation("com.thinkup.sdk:banner-tpn:6.4.90") + implementation("com.thinkup.sdk:interstitial-tpn:6.4.90") + implementation("com.thinkup.sdk:rewardedvideo-tpn:6.4.90") + implementation("com.thinkup.sdk:splash-tpn:6.4.90") + + //Androidx (Necessary) + implementation("androidx.appcompat:appcompat:1.6.1") + implementation("androidx.browser:browser:1.4.0") + + //StartApp + implementation("com.thinkup.sdk:adapter-tpn-startapp:6.4.90") + implementation("com.startapp:inapp-sdk:5.0.2") + + //Vungle + implementation("com.thinkup.sdk:adapter-tpn-vungle:6.4.90") + implementation("com.vungle:vungle-ads:7.5.0") + implementation("com.google.android.gms:play-services-basement:18.1.0") + implementation("com.google.android.gms:play-services-ads-identifier:18.0.1") + + //UnityAds + implementation("com.thinkup.sdk:adapter-tpn-unityads:6.4.90") + implementation("com.unity3d.ads:unity-ads:4.14.0") + + //Ironsource + implementation("com.thinkup.sdk:adapter-tpn-ironsource:6.4.90") + implementation("com.ironsource.sdk:mediationsdk:8.7.0") + implementation("com.google.android.gms:play-services-appset:16.0.2") + implementation("com.google.android.gms:play-services-ads-identifier:18.0.1") + implementation("com.google.android.gms:play-services-basement:18.1.0") + + //Bigo + implementation("com.thinkup.sdk:adapter-tpn-bigo:6.4.90") + implementation("com.bigossp:bigo-ads:5.3.0") + + //Pangle + implementation("com.thinkup.sdk:adapter-tpn-pangle:6.4.90.1") + implementation("com.pangle.global:pag-sdk:7.2.0.6") + implementation("com.google.android.gms:play-services-ads-identifier:18.2.0") + + //Inmobi + implementation("com.thinkup.sdk:adapter-tpn-inmobi:6.4.90") + implementation("com.inmobi.monetization:inmobi-ads-kotlin:10.8.2") + + //Mintegral + implementation("com.thinkup.sdk:adapter-tpn-mintegral:6.4.90") + implementation("com.mbridge.msdk.oversea:mbridge_android_sdk:16.9.71") + implementation("androidx.recyclerview:recyclerview:1.1.0") + + //Chartboost + implementation("com.thinkup.sdk:adapter-tpn-chartboost:6.4.90") + implementation("com.chartboost:chartboost-sdk:9.8.3") + implementation("com.chartboost:chartboost-mediation-sdk:4.9.2") + implementation("com.chartboost:chartboost-mediation-adapter-chartboost:4.9.8.1.0") + implementation("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0") + implementation("com.squareup.okhttp3:logging-interceptor:4.10.0") + implementation("com.squareup.okhttp3:okhttp:4.10.0") + implementation("com.squareup.retrofit2:converter-scalars:2.9.0") + implementation("com.squareup.retrofit2:retrofit:2.9.0") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1") + + //Fyber + implementation("com.thinkup.sdk:adapter-tpn-fyber:6.4.90") + implementation("com.fyber:marketplace-sdk:8.3.7") + implementation("com.google.android.gms:play-services-ads-identifier:18.0.1") + + //Tramini + implementation("com.thinkup.sdk:tramini-plugin-tpn:6.4.90") + + // Debugger UI Tools + implementation("com.anythink.sdk:debugger-ui:1.1.0") + + //----------------------------------------------TopOn + } \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..8cb52fa --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "614489165471", + "project_id": "sketch-art-trace", + "storage_bucket": "sketch-art-trace.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:614489165471:android:d173881c33515576d81caa", + "android_client_info": { + "package_name": "com.sketch.art.trace" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyC0qlza20A4Vs9l2cL6CC2tombsh-GtxXA" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/libs/TopOnLibrary_06_27_16_00-release.aar b/app/libs/TopOnLibrary_06_27_16_00-release.aar new file mode 100644 index 0000000..2500938 Binary files /dev/null and b/app/libs/TopOnLibrary_06_27_16_00-release.aar differ diff --git a/app/libs/UpLoadLibrary_06_27_16_55-release.aar b/app/libs/UpLoadLibrary_06_27_16_55-release.aar new file mode 100644 index 0000000..5b2eba9 Binary files /dev/null and b/app/libs/UpLoadLibrary_06_27_16_55-release.aar differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1c7003b..e364ba9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ - + @@ -29,6 +29,18 @@ android:supportsRtl="true" android:theme="@style/Theme.PaintingHelper" tools:targetApi="31"> + + + + + + + + () { -// @Override -// public void onActivityResult(ActivityResult result) { -// if (result.getResultCode() == RESULT_OK && result.getData() != null) { -// Uri imageUri = result.getData().getData(); -// saveUploadImage(imageUri) -// } -// } -// } -// ) ; -// storePermissionsLauncher = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback>() { -// @Override -// public void onActivityResult(Map o) { -// boolean isGranted = true; -// for (Map.Entry stringBooleanEntry : o.entrySet()) { -// if (!stringBooleanEntry.getValue()) { -// isGranted = false; -// } -// } -// if (isGranted) { -// takeGallery(); -// } else { -// Toast.makeText(UIDetail.this, " Permission denied", Toast.LENGTH_SHORT).show(); -// } -// -// } -// }); + init(); @@ -234,11 +214,12 @@ public class CameraActivity extends AppCompatActivity implements View.OnTouchLis public void onClick(View v) { if (v.equals(imBack)) { - if (isMain) { - finish(); - } else { - finish(); - } + AdManager.showTopOn(CameraActivity.this, new onActionListener() { + @Override + public void onAction() { + finish(); + } + }); } else { if (!hasPermission) { @@ -261,15 +242,21 @@ public class CameraActivity extends AppCompatActivity implements View.OnTouchLis seekBar.setVisibility(View.VISIBLE); } }else if(v.equals(imFavorite)){ - boolean selected = imFavorite.isSelected(); - imFavorite.setSelected(!selected); - boolean newSelect = imFavorite.isSelected(); - if(newSelect){ - MyDataBase.insertOrUpdateLike(curBitmapPath); - }else { - MyDataBase.deleteLike(curBitmapPath); + AdManager.showTopOn(CameraActivity.this, new onActionListener() { + @Override + public void onAction() { + boolean selected = imFavorite.isSelected(); + imFavorite.setSelected(!selected); + boolean newSelect = imFavorite.isSelected(); + if(newSelect){ + MyDataBase.insertOrUpdateLike(curBitmapPath); + }else { + MyDataBase.deleteLike(curBitmapPath); + + } + } + }); - } } } @@ -382,23 +369,7 @@ public class CameraActivity extends AppCompatActivity implements View.OnTouchLis } -// private void openGalleryWithPermission() { -// String[] permissions; -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { -// permissions = new String[]{Manifest.permission.READ_MEDIA_IMAGES}; -// } else { -// permissions = new String[]{ -// Manifest.permission.READ_EXTERNAL_STORAGE, -// Manifest.permission.WRITE_EXTERNAL_STORAGE -// }; -// } -// -// if (!Common.checkPermission(this, permissions)) { -// storePermissionsLauncher.launch(permissions); -// } else { -// takeGallery(); -// } -// } + private void showNoPermission() { diff --git a/app/src/main/java/com/sketch/art/trace/activity/CategoryAllActivity.java b/app/src/main/java/com/sketch/art/trace/activity/CategoryAllActivity.java index 44938e1..06c96a0 100644 --- a/app/src/main/java/com/sketch/art/trace/activity/CategoryAllActivity.java +++ b/app/src/main/java/com/sketch/art/trace/activity/CategoryAllActivity.java @@ -6,6 +6,8 @@ import android.view.View; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.GridLayoutManager; +import com.ad.toponlibrary.AdManager; +import com.ad.toponlibrary.onActionListener; import com.sketch.art.trace.adapter.AdapterAll; import com.sketch.art.trace.databinding.ActivityViewAllLayoutBinding; import com.sketch.art.trace.tools.App; @@ -24,14 +26,19 @@ public class CategoryAllActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - + AdManager.loadAllAd(); preViewBinding = ActivityViewAllLayoutBinding.inflate(getLayoutInflater()); setContentView(preViewBinding.getRoot()); ComManager.setStatusBarTextColor(this, true); dirStr = getIntent().getStringExtra(App.Key_ViewDir); preViewBinding.categoryName.setText(dirStr.substring(dirStr.lastIndexOf("_") + 1)); + AdManager.showTopOn(this, new onActionListener() { + @Override + public void onAction() { + } + }); onInitList(); onInitClick(); @@ -51,7 +58,12 @@ public class CategoryAllActivity extends AppCompatActivity { preViewBinding.back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - finish(); + AdManager.showTopOn(CategoryAllActivity.this, new onActionListener() { + @Override + public void onAction() { + finish(); + } + }); } }); } diff --git a/app/src/main/java/com/sketch/art/trace/activity/SplashActivity.java b/app/src/main/java/com/sketch/art/trace/activity/SplashActivity.java index 0359a10..f36620a 100644 --- a/app/src/main/java/com/sketch/art/trace/activity/SplashActivity.java +++ b/app/src/main/java/com/sketch/art/trace/activity/SplashActivity.java @@ -6,13 +6,18 @@ import android.os.CountDownTimer; import androidx.appcompat.app.AppCompatActivity; +import com.ad.toponlibrary.AdManager; import com.sketch.art.trace.databinding.ActivitySplashLayoutBinding; import com.sketch.art.trace.tools.ComManager; +import kotlin.Unit; +import kotlin.jvm.functions.Function0; +import kotlin.jvm.functions.Function1; + public class SplashActivity extends AppCompatActivity { private ActivitySplashLayoutBinding binding; - private long time = 2000; + private long time = 12000; private CountDownTimer countDownTimer; @@ -23,20 +28,21 @@ public class SplashActivity extends AppCompatActivity { setContentView(binding.getRoot()); ComManager.setStatusBarTextColor(this, true); - - countDownTimer= new CountDownTimer(time,100) { + countDownTimer = AdManager.showWelcomeAd(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); + return null; } - + }, new Function0() { @Override - public void onFinish() { + public Unit invoke() { enterMain(); + return null; } - }; + }); countDownTimer.start(); } private void enterMain() { diff --git a/app/src/main/java/com/sketch/art/trace/activity/UploadActivity.kt b/app/src/main/java/com/sketch/art/trace/activity/UploadActivity.kt index 9a655d0..ac7e0a8 100644 --- a/app/src/main/java/com/sketch/art/trace/activity/UploadActivity.kt +++ b/app/src/main/java/com/sketch/art/trace/activity/UploadActivity.kt @@ -17,6 +17,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.core.content.FileProvider import androidx.recyclerview.widget.GridLayoutManager +import com.ad.toponlibrary.AdManager import com.sketch.art.trace.R import com.sketch.art.trace.adapter.AdapterUpload import com.sketch.art.trace.databinding.ActivityUploadLayoutBinding @@ -54,7 +55,8 @@ class UploadActivity : AppCompatActivity() { setContentView(binding.root) onInit() initClick() - + AdManager.loadAllAd() + AdManager.showTopOn(this){} } @@ -63,18 +65,24 @@ class UploadActivity : AppCompatActivity() { finish() } binding.addImg.setOnClickListener { - dialog = dialog ?: DialogSelect(object : - OnDialogClickListener { - override fun onClickCamera() { - openCameraWithPermission() - } - override fun onClickGallery() { - openGalleryWithPermission() - } + AdManager.showTopOn(this){ + + dialog = dialog ?: DialogSelect(object : + OnDialogClickListener { + override fun onClickCamera() { + openCameraWithPermission() + } + + override fun onClickGallery() { + openGalleryWithPermission() + } + + }) + dialog!!.show(supportFragmentManager, "") + + } - }) - dialog!!.show(supportFragmentManager, "") } } diff --git a/app/src/main/java/com/sketch/art/trace/tools/App.java b/app/src/main/java/com/sketch/art/trace/tools/App.java index 3d2a314..28edc7c 100644 --- a/app/src/main/java/com/sketch/art/trace/tools/App.java +++ b/app/src/main/java/com/sketch/art/trace/tools/App.java @@ -4,7 +4,10 @@ import android.app.Application; import android.content.res.AssetManager; import android.graphics.Typeface; +import com.ad.toponlibrary.AdManager; import com.sketch.art.trace.mydata.MyDataBase; +import com.up.uploadlibrary.SaveUtils; +import com.up.uploadlibrary.UpLoadManager; import java.util.Arrays; import java.util.Collections; @@ -56,6 +59,13 @@ public class App extends Application { defaultFont = Typeface.createFromAsset(assets, "myfont.ttf"); classNameList = Arrays.asList(CLASS_NAMES); MyDataBase.init(this); + + AdManager.INSTANCE.init(TAG,app,"h6863ab3c02e55","addf54d133b312f627700a82e99f1c335", + "fe06c76b794f95216f98e5982ae8f335fc558956", + "n6863aba0ba9d3", + "n6863ab79df088", + "n6863ab6838cca",false); + UpLoadManager.INSTANCE.init(this,TAG); } public static List getAllDir() { diff --git a/build.gradle.kts b/build.gradle.kts index 526e9a9..17e255e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,8 +2,8 @@ plugins { id("com.android.application") version "8.1.0" 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.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{ dependencies{ diff --git a/settings.gradle.kts b/settings.gradle.kts index 5e5d333..9e248c7 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -12,7 +12,24 @@ dependencyResolutionManagement { repositories { google() mavenCentral() + //TU(Core) + maven ( "https://jfrog.anythinktech.com/artifactory/overseas_sdk") + //Ironsource + maven ( "https://android-sdk.is.com/") + + //Pangle + maven ("https://artifact.bytedance.com/repository/pangle") + + //Mintegral + maven ("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") + + //Chartboost + maven ( "https://cboost.jfrog.io/artifactory/chartboost-ads") + maven ("https://cboost.jfrog.io/artifactory/chartboost-mediation") + + //TopOn集成测试工具 + maven ( "https://jfrog.anythinktech.com/artifactory/debugger") }