V1.1(2) topon+upload

This commit is contained in:
litingting 2025-06-27 16:32:32 +08:00
parent 5503021e89
commit 6600ad8f46
13 changed files with 260 additions and 138 deletions

View File

@ -4,8 +4,8 @@ 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())
@ -16,10 +16,10 @@ android {
defaultConfig {
//com.picture.ar.drawing
applicationId = "com.picture.ar.drawing"
minSdk = 23
minSdk = 24
targetSdk = 34
versionCode = 1
versionName = "1.0"
versionCode = 2
versionName = "1.1"
setProperty(
"archivesBaseName",
"AR Drawing_V" + versionName + "(${versionCode})_$timestamp"
@ -29,6 +29,7 @@ android {
buildTypes {
release {
isDebuggable = true
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
@ -80,4 +81,90 @@ 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_19-release.aar"))
//-----------------------------------------------TopOn(Mintegral、Pangle、UnitAds、Digital Turbine(Fyber)、Chartboost&Helium、Ironsource、Liftoff(Vungle)、Inmobi、Start.io、Bigo)
//TU (Necessary)
api ("com.thinkup.sdk:core-tpn:6.4.90")
api ("com.thinkup.sdk:nativead-tpn:6.4.90")
api ("com.thinkup.sdk:banner-tpn:6.4.90")
api ("com.thinkup.sdk:interstitial-tpn:6.4.90")
api ("com.thinkup.sdk:rewardedvideo-tpn:6.4.90")
api ("com.thinkup.sdk:splash-tpn:6.4.90")
//Androidx (Necessary)
api ("androidx.appcompat:appcompat:1.6.1")
api ("androidx.browser:browser:1.4.0")
//StartApp
api ("com.thinkup.sdk:adapter-tpn-startapp:6.4.90")
api ("com.startapp:inapp-sdk:5.0.2")
//Vungle
api ("com.thinkup.sdk:adapter-tpn-vungle:6.4.90")
api ("com.vungle:vungle-ads:7.5.0")
api ("com.google.android.gms:play-services-basement:18.1.0")
api ("com.google.android.gms:play-services-ads-identifier:18.0.1")
//UnityAds
api ("com.thinkup.sdk:adapter-tpn-unityads:6.4.90")
api ("com.unity3d.ads:unity-ads:4.14.0")
//Ironsource
api ("com.thinkup.sdk:adapter-tpn-ironsource:6.4.90")
api ("com.ironsource.sdk:mediationsdk:8.7.0")
api ("com.google.android.gms:play-services-appset:16.0.2")
api ("com.google.android.gms:play-services-ads-identifier:18.0.1")
api ("com.google.android.gms:play-services-basement:18.1.0")
//Bigo
api ("com.thinkup.sdk:adapter-tpn-bigo:6.4.90")
api ("com.bigossp:bigo-ads:5.3.0")
//Pangle
api ("com.thinkup.sdk:adapter-tpn-pangle:6.4.90.1")
api ("com.pangle.global:pag-sdk:7.2.0.6")
api ("com.google.android.gms:play-services-ads-identifier:18.2.0")
//Inmobi
api ("com.thinkup.sdk:adapter-tpn-inmobi:6.4.90")
api ("com.inmobi.monetization:inmobi-ads-kotlin:10.8.2")
//Mintegral
api ("com.thinkup.sdk:adapter-tpn-mintegral:6.4.90")
api ("com.mbridge.msdk.oversea:mbridge_android_sdk:16.9.71")
api ("androidx.recyclerview:recyclerview:1.1.0")
//Chartboost
api ("com.thinkup.sdk:adapter-tpn-chartboost:6.4.90")
api ("com.chartboost:chartboost-sdk:9.8.3")
api ("com.chartboost:chartboost-mediation-sdk:4.9.2")
api ("com.chartboost:chartboost-mediation-adapter-chartboost:4.9.8.1.0")
api ("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0")
api ("com.squareup.okhttp3:logging-interceptor:4.10.0")
api ("com.squareup.okhttp3:okhttp:4.10.0")
api ("com.squareup.retrofit2:converter-scalars:2.9.0")
api ("com.squareup.retrofit2:retrofit:2.9.0")
api ("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1")
api ("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1")
//Fyber
api ("com.thinkup.sdk:adapter-tpn-fyber:6.4.90")
api ("com.fyber:marketplace-sdk:8.3.7")
api ("com.google.android.gms:play-services-ads-identifier:18.0.1")
//Tramini
api ("com.thinkup.sdk:tramini-plugin-tpn:6.4.90")
// Debugger UI Tools
api ("com.anythink.sdk:debugger-ui:1.1.0")
//----------------------------------------------TopOn
}

29
app/google-services.json Normal file
View File

@ -0,0 +1,29 @@
{
"project_info": {
"project_number": "194081686692",
"project_id": "ar-drawing-76fef",
"storage_bucket": "ar-drawing-76fef.firebasestorage.app"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:194081686692:android:35ec0c900cf3cc13b15231",
"android_client_info": {
"package_name": "com.picture.ar.drawing"
}
},
"oauth_client": [],
"api_key": [
{
"current_key": "AIzaSyBWiTfEijKdl_doYnTzMzoWaISsodPFGqk"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": []
}
}
}
],
"configuration_version": "1"
}

Binary file not shown.

Binary file not shown.

View File

@ -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.picture.ar.drawing.databinding.ActivityViewAllBinding;
import com.picture.ar.drawing.list.ViewAllList;
import com.picture.ar.drawing.utils.App;
@ -30,9 +32,15 @@ public class AllActivity extends AppCompatActivity {
ComUtils.setStatusBarTextColor(this, true);
dirStr = getIntent().getStringExtra(App.Key_ViewDir);
preViewBinding.categoryName.setText(dirStr.substring(dirStr.lastIndexOf("_") + 1));
AdManager.loadAllAd();
AdManager.showTopOn(this, new onActionListener() {
@Override
public void onAction() {
}
});
onInitList();
onInitClick();
}
@ -51,8 +59,13 @@ public class AllActivity extends AppCompatActivity {
preViewBinding.back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AdManager.showTopOn(AllActivity.this, new onActionListener() {
@Override
public void onAction() {
finish();
}
});
}
});
}
}

View File

@ -4,6 +4,8 @@ import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.GridLayoutManager
import com.ad.toponlibrary.AdManager
import com.picture.ar.drawing.data.BeanLocal
import com.picture.ar.drawing.data.MyDataBase
import com.picture.ar.drawing.databinding.ActivityLikeBinding
@ -23,17 +25,25 @@ class LikeActivity : AppCompatActivity() {
binding = ActivityLikeBinding.inflate(layoutInflater)
ComUtils.setStatusBarTextColor(this, true)
setContentView(binding.root)
AdManager.loadAllAd()
onInit()
initClick()
AdManager.showTopOn(this@LikeActivity){
}
}
private fun initClick() {
binding.back.setOnClickListener {
AdManager.showTopOn(this@LikeActivity){
finish()
}
}
}
private fun onInit() {

View File

@ -12,6 +12,8 @@ import com.picture.ar.drawing.list.MainList;
import com.picture.ar.drawing.listener.ClickListener;
import com.picture.ar.drawing.utils.App;
import com.picture.ar.drawing.utils.ComUtils;
import com.up.uploadlibrary.Http;
import com.up.uploadlibrary.SaveUtils;
public class MainActivity extends AppCompatActivity implements ClickListener,View.OnClickListener {
@ -26,6 +28,11 @@ public class MainActivity extends AppCompatActivity implements ClickListener,Vie
onInitRecycler();
binding.rlUpload.setOnClickListener(this);
binding.rlLike.setOnClickListener(this);
boolean post = SaveUtils.INSTANCE.isPost();
if(!post){
Http.INSTANCE.makeGetRequest(this);
SaveUtils.INSTANCE.setPost(true);
}
}

View File

@ -33,6 +33,8 @@ import androidx.camera.view.PreviewView;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import com.ad.toponlibrary.AdManager;
import com.ad.toponlibrary.onActionListener;
import com.picture.ar.drawing.listener.BitmapListener;
import com.picture.ar.drawing.utils.App;
import com.picture.ar.drawing.utils.ComUtils;
@ -64,7 +66,7 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
private float distance;//初始距离
private float scaleMultiple;//缩放倍数
private ImageView flashIm, imZoom, imBack,imFavorite;
private ImageView flashIm, imZoom, imBack, imFavorite;
// private ImageView imPhoto;
private String curBitmapPath;
@ -82,7 +84,7 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
ComUtils.setStatusBarTextColor(this, false);
Intent intent = getIntent();
isMain = intent.getBooleanExtra(App.Key_ISMAIN, false);
AdManager.loadAllAd();
previewView = findViewById(R.id.preview);
imageView = findViewById(R.id.image);
@ -95,7 +97,12 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
imFavorite = findViewById(R.id.im_favorite);
AdManager.showTopOn(this, new onActionListener() {
@Override
public void onAction() {
}
});
curBitmapPath = getIntent().getStringExtra(App.Key_Camera);
boolean b = MyDataBase.queryIsLike(curBitmapPath);
@ -104,13 +111,13 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
intentActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
if (result.getResultCode() == Activity.RESULT_OK && result.getData() != null) {
Uri imageUri = result.getData().getData();
if(imageUri!= null){
if (imageUri != null) {
String lastPathSegment = imageUri.getLastPathSegment();
int index = lastPathSegment.lastIndexOf("/");
String name = lastPathSegment.substring(index+1);
String name = lastPathSegment.substring(index + 1);
double uriFileSize = ComUtils.getUriFileSize(PreviewActivity.this, imageUri);
Log.d(App.TAG, "------uriFileSize-----" + uriFileSize+"--Mb");
if(uriFileSize>=5){
Log.d(App.TAG, "------uriFileSize-----" + uriFileSize + "--Mb");
if (uriFileSize >= 5) {
Toast.makeText(PreviewActivity.this, getString(R.string.import_im_too_big), Toast.LENGTH_SHORT).show();
return;
}
@ -119,7 +126,7 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
@Override
public void run() {
boolean b = ComUtils.saveToInternalStorage(name, imageUri, PreviewActivity.this);
if(b){
if (b) {
String importPath = ComUtils.getImportPath(name);
MyDataBase.insertImport(importPath);
}
@ -133,34 +140,6 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
});
// galleryLauncher = registerForActivityResult(
// new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
// @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<Map<String, Boolean>>() {
// @Override
// public void onActivityResult(Map<String, Boolean> o) {
// boolean isGranted = true;
// for (Map.Entry<String, Boolean> stringBooleanEntry : o.entrySet()) {
// if (!stringBooleanEntry.getValue()) {
// isGranted = false;
// }
// }
// if (isGranted) {
// takeGallery();
// } else {
// Toast.makeText(UIDetail.this, " Permission denied", Toast.LENGTH_SHORT).show();
// }
//
// }
// });
init();
@ -168,7 +147,6 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
}
private void onInitIm(float imW, float imH) {
Point screen = ComUtils.getScreen(this);
float newX = screen.x / 2f - imW / 2;
@ -188,8 +166,6 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
startPointF.set(event.getX(), event.getY());
MODE = MODE_DRAG;
break;
@ -233,12 +209,12 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
@Override
public void onClick(View v) {
if (v.equals(imBack)) {
if (isMain) {
finish();
} else {
AdManager.showTopOn(this, new onActionListener() {
@Override
public void onAction() {
finish();
}
});
} else {
if (!hasPermission) {
@ -250,23 +226,19 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
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);
// intentActivityResultLauncher.launch(intent);
// }
else if (v.equals(imZoom)) {
if (seekBar.getVisibility() == View.VISIBLE) {
seekBar.setVisibility(View.GONE);
} else if (seekBar.getVisibility() == View.GONE) {
seekBar.setVisibility(View.VISIBLE);
}
}else if(v.equals(imFavorite)){
} else if (v.equals(imFavorite)) {
boolean selected = imFavorite.isSelected();
imFavorite.setSelected(!selected);
boolean newSelect = imFavorite.isSelected();
if(newSelect){
if (newSelect) {
MyDataBase.insertOrUpdateLike(curBitmapPath);
}else {
} else {
MyDataBase.deleteLike(curBitmapPath);
}
@ -309,7 +281,7 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
} else {
permissions = new String[]{android.Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
}
if (!ComUtils.checkPermission(this,permissions)) {
if (!ComUtils.checkPermission(this, permissions)) {
hasPermission = false;
imageView.setOnTouchListener(null);
ActivityCompat.requestPermissions(this, permissions, 0);
@ -352,10 +324,7 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
onInitIm(width, height);
}
});
// imageView.setImageBitmap(bitmap);
// int width = bitmap.getWidth();
// int height = bitmap.getHeight();
// onInitIm(width, height);
}
} catch (Exception e) {
@ -369,7 +338,7 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 0) {
if (ComUtils.checkPermission(PreviewActivity.this,permissions)) {
if (ComUtils.checkPermission(PreviewActivity.this, permissions)) {
hasPermission = true;
imageView.setOnTouchListener(this);
startCamera();
@ -382,23 +351,7 @@ public class PreviewActivity extends AppCompatActivity implements View.OnTouchLi
}
// 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() {

View File

@ -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.picture.ar.drawing.R
import com.picture.ar.drawing.data.BeanUpload
import com.picture.ar.drawing.data.MyDataBase
@ -52,9 +53,12 @@ class UploadActivity : AppCompatActivity() {
binding = ActivityUploadBinding.inflate(layoutInflater)
ComUtils.setStatusBarTextColor(this, true)
setContentView(binding.root)
AdManager.loadAllAd()
onInit()
initClick()
AdManager.showTopOn(this@UploadActivity){}
}
@ -63,6 +67,8 @@ class UploadActivity : AppCompatActivity() {
finish()
}
binding.addImg.setOnClickListener {
AdManager.showTopOn(this@UploadActivity){
dialog = dialog ?: DialogFragmentSelect(object :
SelectListener {
override fun onClickCamera() {
@ -75,6 +81,10 @@ class UploadActivity : AppCompatActivity() {
})
dialog!!.show(supportFragmentManager, "")
}
}
}

View File

@ -6,13 +6,18 @@ import android.os.CountDownTimer;
import androidx.appcompat.app.AppCompatActivity;
import com.ad.toponlibrary.AdManager;
import com.picture.ar.drawing.databinding.ActivityWelcomeBinding;
import com.picture.ar.drawing.utils.ComUtils;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.functions.Function1;
public class WelcomeActivity extends AppCompatActivity {
private ActivityWelcomeBinding binding;
private long time = 2000;
private long time = 12000;
private CountDownTimer countDownTimer;
@ -24,19 +29,21 @@ public class WelcomeActivity extends AppCompatActivity {
ComUtils.setStatusBarTextColor(this, true);
countDownTimer= new CountDownTimer(time,100) {
countDownTimer = AdManager.showWelcomeAd(this, time, new Function1<Long, Unit>() {
@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<Unit>() {
@Override
public void onFinish() {
public Unit invoke() {
enterMain();
return null;
}
};
});
countDownTimer.start();
}
private void enterMain() {

View File

@ -1,10 +1,13 @@
package com.picture.ar.drawing.utils;
import android.adservices.adid.AdIdManager;
import android.app.Application;
import android.content.res.AssetManager;
import android.graphics.Typeface;
import com.ad.toponlibrary.AdManager;
import com.picture.ar.drawing.data.MyDataBase;
import com.up.uploadlibrary.SaveUtils;
import java.util.Arrays;
import java.util.Collections;
@ -45,9 +48,7 @@ public class App extends Application {
"local_Space"
};
// private String APPId ="h67505d35951dc";
//
// private String AppKey ="a81d17e5cc10cd96a65fe75c0ffd15334";
public static Typeface defaultFont;
private static List<String> classNameList;
@ -60,29 +61,15 @@ public class App extends Application {
defaultFont = Typeface.createFromAsset(assets, "myfont.ttf");
classNameList = Arrays.asList(CLASS_NAMES);
MyDataBase.init(this);
AdManager.INSTANCE.init(TAG,app,"h685cdf7a32d35","ac45685ea25ae4600789c6b9abde8cb77",
"d0a434af69020f58cd1c246da4adb0630eb18a02",
"n685cdfc936372",
"n685cdfbabc1f0",
"n685cdfa5973c5",false);
SaveUtils.INSTANCE.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 List<String> getAllDir() {
Collections.shuffle(classNameList);
return classNameList;

View File

@ -2,8 +2,9 @@
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.android.library") version "8.1.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
}
buildscript{
dependencies{

View File

@ -12,7 +12,25 @@ 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")
}
@ -20,4 +38,4 @@ dependencyResolutionManagement {
rootProject.name = "AR Drawing"
include(":app")
//include(":TopOnLibrary")