diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 7053ed8..e42de6e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,9 +4,13 @@ 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 = "dEoKIpTvxCdhzapxKLHoPaCvNUnIJ5eMfILsy7J93J_SOBMp5ob1ML0P2VsqoHRAmclao4OAqpwh39eHPT4GFH" } val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date()) android { @@ -15,11 +19,11 @@ android { defaultConfig { //com.ar.sketch.paint.drawing - applicationId = "com.ar.sketch.paint.drawing.test" + applicationId = "com.ar.sketch.paint.drawing" minSdk = 23 targetSdk = 34 - versionCode = 1 - versionName = "1.0.0" + versionCode = 2 + versionName = "1.0.1" setProperty( "archivesBaseName", "AR Sketch_V" + versionName + "(${versionCode})_$timestamp" @@ -29,7 +33,6 @@ android { buildTypes { release { - isDebuggable = true isMinifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), @@ -76,7 +79,44 @@ dependencies { implementation ("com.squareup.okhttp3:okhttp:4.12.0") implementation("com.squareup.okhttp3:logging-interceptor:4.12.0") + + + //获取gaid implementation("com.google.android.gms:play-services-ads-identifier:18.0.1") implementation("com.google.android.gms:play-services-appset:16.0.1") + //开启协程 implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2") + implementation ("com.squareup.okhttp3:okhttp:4.12.0") + implementation("com.squareup.okhttp3:logging-interceptor:4.12.0") + + + + //--------------------MAX (BIGO Ads、Chartboost、DT Exchangc、Googlc Ad Managcr、Google Bidding and Google AdMob、InMobi、ironSource、Liftoff Monetizc、 + //Meta Audience Network、Moloco、Panglc、Unity Ads) + 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("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:+") +//Google Ad Manager + // implementation("com.applovin.mediation:google-ad-manager-adapter:+") + +//Google Bidding and Google AdMob + // implementation("com.applovin.mediation:google-adapter:+") + implementation("com.applovin.mediation:inmobi-adapter:+") + implementation("com.squareup.picasso:picasso:2.71828") + implementation("androidx.recyclerview:recyclerview:1.1.0") + implementation("com.applovin.mediation:ironsource-adapter:+") + implementation("com.applovin.mediation:vungle-adapter:+") + implementation("com.applovin.mediation:facebook-adapter:+") + implementation("com.applovin.mediation:moloco-adapter:+") + implementation("com.applovin.mediation:bytedance-adapter:+") + implementation("com.applovin.mediation:unityads-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..43f09df --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "863983910100", + "project_id": "ar-sketch-93bb3", + "storage_bucket": "ar-sketch-93bb3.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:863983910100:android:a17d8e619d2d1c3dc40f41", + "android_client_info": { + "package_name": "com.ar.sketch.paint.drawing" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyAwWqr1NV8744O6NDUj5-LzLwc8_oRsVJY" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index cf50408..08dbda7 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -20,3 +20,5 @@ # hide the original source file name. #-renamesourcefileattribute SourceFile + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d8b9894..fdbee49 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,10 +23,10 @@ - + - - - - - - - - + + - - + + () { @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() { binding.loadingPb.setProgress(100); diff --git a/app/src/main/java/com/ar/sketch/paint/drawing/act/UploadActivity.kt b/app/src/main/java/com/ar/sketch/paint/drawing/act/UploadActivity.kt deleted file mode 100644 index 2ec84af..0000000 --- a/app/src/main/java/com/ar/sketch/paint/drawing/act/UploadActivity.kt +++ /dev/null @@ -1,73 +0,0 @@ -package com.ar.sketch.paint.drawing.act - -import android.Manifest -import android.annotation.SuppressLint -import android.content.pm.PackageManager -import android.os.Bundle -import android.util.Log -import androidx.activity.result.ActivityResultLauncher -import androidx.activity.result.contract.ActivityResultContracts -import androidx.appcompat.app.AppCompatActivity -import androidx.core.content.ContextCompat - -import com.ar.sketch.paint.drawing.databinding.ActivityUploadBinding -import com.ar.sketch.paint.drawing.tool.Http -import com.ar.sketch.paint.drawing.tool.Upload -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.launch - - -class UploadActivity : AppCompatActivity() { - - - private lateinit var requestPermissionLauncher: ActivityResultLauncher> - private val permissions = arrayOf( - Manifest.permission.READ_PHONE_STATE, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.ACCESS_COARSE_LOCATION - ) - private lateinit var binding: ActivityUploadBinding - - @SuppressLint("SuspiciousIndentation") - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - binding = ActivityUploadBinding.inflate(layoutInflater) - setContentView(binding.root) - -// requestPermissionLauncher = -// registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { result -> -// val phoneGranted: Boolean = result[Manifest.permission.READ_PHONE_STATE] == true -// val locationGranted: Boolean = -// result[Manifest.permission.ACCESS_FINE_LOCATION] == true -// val coarseLocation: Boolean = -// result[Manifest.permission.ACCESS_COARSE_LOCATION] == true -// -// Log.e("Permission", "1=${phoneGranted} 2= ${locationGranted} 3=$coarseLocation") -// if (phoneGranted && locationGranted && coarseLocation) { -// Upload.getData(this) -// } -// -// } -// -// -// if (ContextCompat.checkSelfPermission( -// this, -// Manifest.permission.READ_PHONE_STATE -// ) != PackageManager.PERMISSION_GRANTED -// || ContextCompat.checkSelfPermission( -// this, -// Manifest.permission.ACCESS_FINE_LOCATION -// ) != PackageManager.PERMISSION_GRANTED -// ) { -// -//// requestPermissionLauncher.launch(permissions) -// } else { -// Upload.getData(this) -// } - binding.btn.setOnClickListener { - Http.makeGetRequest(this) - } - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/ar/sketch/paint/drawing/ad/MaxListener.java b/app/src/main/java/com/ar/sketch/paint/drawing/ad/MaxListener.java new file mode 100644 index 0000000..ae1949e --- /dev/null +++ b/app/src/main/java/com/ar/sketch/paint/drawing/ad/MaxListener.java @@ -0,0 +1,11 @@ +package com.ar.sketch.paint.drawing.ad; + +import com.applovin.mediation.MaxAd; + +public interface MaxListener { + void onFail(MaxAd ad); + + void onShowSuccess(MaxAd ad); + + void onHidden(); +} diff --git a/app/src/main/java/com/ar/sketch/paint/drawing/ad/MaxManager.java b/app/src/main/java/com/ar/sketch/paint/drawing/ad/MaxManager.java new file mode 100644 index 0000000..bdeca98 --- /dev/null +++ b/app/src/main/java/com/ar/sketch/paint/drawing/ad/MaxManager.java @@ -0,0 +1,174 @@ +package com.ar.sketch.paint.drawing.ad; + +import android.app.Activity; +import android.util.Log; + +import androidx.annotation.NonNull; + + +import com.applovin.mediation.MaxAd; +import com.applovin.mediation.MaxAdListener; +import com.applovin.mediation.MaxError; +import com.applovin.mediation.ads.MaxInterstitialAd; +import com.ar.sketch.paint.drawing.tool.MyArApp; + + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class MaxManager { + + private static final String one_AD = "7c4b34325d69456c"; + private static final String two_Ad = "f1ada735b400f486"; + private static final String three_ad = "12f02849b311236f"; + + + public static final int type_no_cache = 0; + public static final int type_has_cache = 1; + public static final int type_show_success = 2; + public static final int type_show_close = 3; + public static final int type_show_fail = 4; + private static final String Ad_TAG = MyArApp.TAG; + private static List adList = new ArrayList<>(); + + public static MaxInterstitialAd getAd(List list) { + Collections.shuffle(list); + for (MaxInterstitialAd ad : list) { + if (ad.isReady()) { + return ad; + } + } + return null; + } + + public static List onLoadAd() { + if (adList.isEmpty()) { + MaxInterstitialAd AdT = new MaxInterstitialAd(two_Ad, MyArApp.app); + MaxInterstitialAd AdOne = new MaxInterstitialAd(one_AD, MyArApp.app); + MaxInterstitialAd AdThree = new MaxInterstitialAd(three_ad, MyArApp.app); + adList.add(AdOne); + adList.add(AdT); + adList.add(AdThree); + } + + for (MaxInterstitialAd ad : adList) { + if (!ad.isReady()) { + setMyListener(ad, new MaxListener() { + @Override + public void onFail(MaxAd ad) { + + } + + @Override + public void onShowSuccess(MaxAd ad) { + + } + + @Override + public void onHidden() { + + } + }); + ad.loadAd(); + } + + } + + return adList; + } + + public static void setMyListener(MaxInterstitialAd ad, MaxListener maxListener) { + ad.setListener(new MaxAdListener() { + @Override + public void onAdLoaded(@NonNull MaxAd maxAd) { + Log.d(Ad_TAG, "-------onAdLoaded-----maxAd=" + maxAd.getAdUnitId()); + } + + @Override + public void onAdDisplayed(@NonNull MaxAd maxAd) { + Log.d(Ad_TAG, "-------onAdDisplayed-----maxAd=" + maxAd.getAdUnitId()); + maxListener.onShowSuccess(maxAd); + } + + @Override + public void onAdHidden(@NonNull MaxAd maxAd) { + Log.d(Ad_TAG, "-------onAdHidden-----maxAd=" + maxAd.getAdUnitId()); + maxListener.onHidden(); + setMyListener(ad, new MaxListener() { + @Override + public void onFail(MaxAd ad) { + + } + + @Override + public void onShowSuccess(MaxAd ad) { + + } + + @Override + public void onHidden() { + + } + }); + ad.loadAd(); + } + + @Override + public void onAdClicked(@NonNull MaxAd maxAd) { + + } + + @Override + public void onAdLoadFailed(@NonNull String s, @NonNull MaxError maxError) { + Log.d(Ad_TAG, "-------onAdLoadFailed-----s=" + s+"----maxError="+maxError.getMessage()); + } + + @Override + public void onAdDisplayFailed(@NonNull MaxAd maxAd, @NonNull MaxError maxError) { + maxListener.onFail(maxAd); + } + }); + + } + + protected static void ShowAd(Activity activity, onAdStatusListener listener) { + MaxInterstitialAd ad = MaxManager.getAd(adList); + if (ad == null) { + listener.onAdStatus(type_no_cache); + } else { + listener.onAdStatus(type_has_cache); + MaxManager.setMyListener(ad, new MaxListener() { + @Override + public void onFail(MaxAd ad) { + listener.onAdStatus(type_show_fail); + } + + @Override + public void onShowSuccess(MaxAd ad) { + listener.onAdStatus(type_show_success); + } + + @Override + public void onHidden() { + listener.onAdStatus(type_show_close); + } + }); + ad.showAd(activity); + } + } + + + public static void startShowMaxAd(Activity activity, onAdAfterAction listener) { + MaxManager.ShowAd(activity, new onAdStatusListener() { + @Override + public void onAdStatus(int type) { + if (type == MaxManager.type_show_close || type == MaxManager.type_show_fail || type == MaxManager.type_no_cache) { + if (listener != null) + listener.onAction(); + } + } + }); + } + +} diff --git a/app/src/main/java/com/ar/sketch/paint/drawing/ad/WelComManager.kt b/app/src/main/java/com/ar/sketch/paint/drawing/ad/WelComManager.kt new file mode 100644 index 0000000..2137e00 --- /dev/null +++ b/app/src/main/java/com/ar/sketch/paint/drawing/ad/WelComManager.kt @@ -0,0 +1,77 @@ +package com.ar.sketch.paint.drawing.ad + +import android.app.Activity +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import android.os.CountDownTimer +import android.util.Log +import androidx.localbroadcastmanager.content.LocalBroadcastManager + +import com.applovin.mediation.ads.MaxInterstitialAd +import com.ar.sketch.paint.drawing.tool.MyArApp + + +object WelComManager { + + private lateinit var timer: CountDownTimer + + private var need_Show = true + + private lateinit var lists: List + private val Ad_TAG: String = MyArApp.TAG + @JvmStatic + fun initTimer(activity: Activity, countTime: Long,countAction: (Long) -> Unit, goMainAction: () -> Unit): CountDownTimer { + need_Show = true + timer = object : CountDownTimer(countTime, 100) { + override fun onTick(millisUntilFinished: Long) { + countAction.invoke(millisUntilFinished) + if (need_Show) { + MaxManager.ShowAd(activity) { + Log.d(Ad_TAG, "--onTick----------it=$it") + if (it == MaxManager.type_has_cache) { + need_Show = false + } + if (it == MaxManager.type_show_close || it == MaxManager.type_show_fail) { + Log.d(Ad_TAG, "--onTick---------enter") + goMainAction.invoke() + } + } + } + } + + override fun onFinish() { + if (need_Show) { + MaxManager.ShowAd(activity) { + if (it == MaxManager.type_show_close || it == MaxManager.type_show_fail || it == MaxManager.type_no_cache) { + Log.d(Ad_TAG, "--onFinish---------enter") + goMainAction.invoke() + } + } + } + } + } + startAd(activity) + return timer + } + + private fun startAd(activity: Activity) { + if (!MyArApp.initSDkOK) { + LocalBroadcastManager.getInstance(activity) + .registerReceiver(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + lists = MaxManager.onLoadAd() + timer.start() + Log.d(Ad_TAG, "------------1sucess") + } + }, IntentFilter(MyArApp.initAction)) + } else { + lists = MaxManager.onLoadAd() + timer.start() + Log.d(Ad_TAG, "------------2sucess") + } + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/sketch/paint/drawing/ad/onAdAfterAction.java b/app/src/main/java/com/ar/sketch/paint/drawing/ad/onAdAfterAction.java new file mode 100644 index 0000000..fc59caf --- /dev/null +++ b/app/src/main/java/com/ar/sketch/paint/drawing/ad/onAdAfterAction.java @@ -0,0 +1,6 @@ +package com.ar.sketch.paint.drawing.ad; + +public interface onAdAfterAction { + + void onAction(); +} diff --git a/app/src/main/java/com/ar/sketch/paint/drawing/ad/onAdStatusListener.java b/app/src/main/java/com/ar/sketch/paint/drawing/ad/onAdStatusListener.java new file mode 100644 index 0000000..888033f --- /dev/null +++ b/app/src/main/java/com/ar/sketch/paint/drawing/ad/onAdStatusListener.java @@ -0,0 +1,6 @@ +package com.ar.sketch.paint.drawing.ad; + +public interface onAdStatusListener { + + void onAdStatus(int type); +} diff --git a/app/src/main/java/com/ar/sketch/paint/drawing/frag/PageHome.java b/app/src/main/java/com/ar/sketch/paint/drawing/frag/PageHome.java index 25bb4a7..f1689b0 100644 --- a/app/src/main/java/com/ar/sketch/paint/drawing/frag/PageHome.java +++ b/app/src/main/java/com/ar/sketch/paint/drawing/frag/PageHome.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.GridLayoutManager; import com.ar.sketch.paint.drawing.act.PageList; import com.ar.sketch.paint.drawing.act.PagePreview; +import com.ar.sketch.paint.drawing.ad.MaxManager; import com.ar.sketch.paint.drawing.adapter.ListMain; import com.ar.sketch.paint.drawing.api.OnClick; import com.ar.sketch.paint.drawing.databinding.FragmentHomeBinding; @@ -31,6 +32,11 @@ public class PageHome extends Fragment implements OnClick { return fragment; } + @Override + public void onResume() { + super.onResume(); + MaxManager.onLoadAd(); + } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, diff --git a/app/src/main/java/com/ar/sketch/paint/drawing/frag/PageImport.java b/app/src/main/java/com/ar/sketch/paint/drawing/frag/PageImport.java index 24d9be4..e4e1c5b 100644 --- a/app/src/main/java/com/ar/sketch/paint/drawing/frag/PageImport.java +++ b/app/src/main/java/com/ar/sketch/paint/drawing/frag/PageImport.java @@ -20,6 +20,8 @@ import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.GridLayoutManager; import com.ar.sketch.paint.drawing.R; +import com.ar.sketch.paint.drawing.ad.MaxManager; +import com.ar.sketch.paint.drawing.ad.onAdAfterAction; import com.ar.sketch.paint.drawing.adapter.ListImport; import com.ar.sketch.paint.drawing.databinding.FragmentImportBinding; import com.ar.sketch.paint.drawing.dbmanager.ImportData; @@ -71,7 +73,13 @@ public class PageImport 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/java/com/ar/sketch/paint/drawing/tool/MyArApp.java b/app/src/main/java/com/ar/sketch/paint/drawing/tool/MyArApp.java index 23bcb9a..62e370c 100644 --- a/app/src/main/java/com/ar/sketch/paint/drawing/tool/MyArApp.java +++ b/app/src/main/java/com/ar/sketch/paint/drawing/tool/MyArApp.java @@ -1,9 +1,16 @@ package com.ar.sketch.paint.drawing.tool; import android.app.Application; +import android.content.Intent; import android.content.res.AssetManager; import android.graphics.Typeface; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import com.applovin.sdk.AppLovinMediationProvider; +import com.applovin.sdk.AppLovinSdk; +import com.applovin.sdk.AppLovinSdkConfiguration; +import com.applovin.sdk.AppLovinSdkInitializationConfiguration; import com.ar.sketch.paint.drawing.dbmanager.MyDataBase; import java.util.ArrayList; @@ -20,10 +27,9 @@ public class MyArApp extends Application { public static MyArApp app; -// private String APPId ="h67505d35951dc"; -// -// private String AppKey ="a81d17e5cc10cd96a65fe75c0ffd15334"; - + public static boolean initSDkOK = false; + public static String initAction = "ACTION_INIT"; + private String SDK_KEY = "vNzLVnoFhzyl4hLzTNPEaBVQE8_Oz_8JkiuKmiRamrxGHN3WtWEGH7Mx20POJPvaycKl1PumsEVkJXhRAse1wn"; public static Typeface defaultFont; @Override @@ -32,30 +38,24 @@ public class MyArApp extends Application { app = this; AssetManager assets = getAssets(); defaultFont = Typeface.createFromAsset(assets, "myfont.ttf"); - + initMAxSDk(); MyDataBase.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); -// ; -// } + private void initMAxSDk() { + + AppLovinSdkInitializationConfiguration initConfig = AppLovinSdkInitializationConfiguration.builder(SDK_KEY, this) + .setMediationProvider(AppLovinMediationProvider.MAX) + .build(); + AppLovinSdk.getInstance(this).initialize(initConfig, new AppLovinSdk.SdkInitializationListener() { + @Override + public void onSdkInitialized(AppLovinSdkConfiguration appLovinSdkConfiguration) { + initSDkOK = true; + LocalBroadcastManager.getInstance(MyArApp.this).sendBroadcast(new Intent(initAction)); + } + }); + } public static String Class_Animals = "res_Animals"; public static String Class_birds = "res_Birds"; diff --git a/app/src/main/java/com/ar/sketch/paint/drawing/tool/AESUtils.kt b/app/src/main/java/com/ar/sketch/paint/drawing/upload/AESUtils.kt similarity index 97% rename from app/src/main/java/com/ar/sketch/paint/drawing/tool/AESUtils.kt rename to app/src/main/java/com/ar/sketch/paint/drawing/upload/AESUtils.kt index 69c2607..e977907 100644 --- a/app/src/main/java/com/ar/sketch/paint/drawing/tool/AESUtils.kt +++ b/app/src/main/java/com/ar/sketch/paint/drawing/upload/AESUtils.kt @@ -1,7 +1,7 @@ +package com.ar.sketch.paint.drawing.upload + import android.app.Activity -import android.provider.Contacts.SettingsColumns.KEY import android.util.Base64 -import com.ar.sketch.paint.drawing.tool.Upload import java.security.SecureRandom import javax.crypto.Cipher import javax.crypto.KeyGenerator diff --git a/app/src/main/java/com/ar/sketch/paint/drawing/tool/Http.kt b/app/src/main/java/com/ar/sketch/paint/drawing/upload/Http.kt similarity index 97% rename from app/src/main/java/com/ar/sketch/paint/drawing/tool/Http.kt rename to app/src/main/java/com/ar/sketch/paint/drawing/upload/Http.kt index 83dd0c9..26a3951 100644 --- a/app/src/main/java/com/ar/sketch/paint/drawing/tool/Http.kt +++ b/app/src/main/java/com/ar/sketch/paint/drawing/upload/Http.kt @@ -1,6 +1,5 @@ -package com.ar.sketch.paint.drawing.tool +package com.ar.sketch.paint.drawing.upload -import AESUtils import android.app.Activity import android.util.Log import kotlinx.coroutines.Dispatchers @@ -29,8 +28,6 @@ object Http { val logging = HttpLoggingInterceptor() logging.setLevel(HttpLoggingInterceptor.Level.BODY) - - GlobalScope.launch(Dispatchers.IO) { val data = Upload.getData(context) diff --git a/app/src/main/java/com/ar/sketch/paint/drawing/upload/SaveUtils.kt b/app/src/main/java/com/ar/sketch/paint/drawing/upload/SaveUtils.kt new file mode 100644 index 0000000..6355336 --- /dev/null +++ b/app/src/main/java/com/ar/sketch/paint/drawing/upload/SaveUtils.kt @@ -0,0 +1,47 @@ +package com.ar.sketch.paint.drawing.upload + +import android.content.Context +import android.content.SharedPreferences +import com.ar.sketch.paint.drawing.tool.MyArApp + + +object SaveUtils { + + + val IS_POST = "is_post" + private var shared: SharedPreferences? = null + + var isPost: Boolean + get() = queryBoolean( + IS_POST, + false + ) + set(value) { + saveBoolean(IS_POST, value) + } + + + + private fun getShared(): SharedPreferences { + if (shared == null) { + shared = MyArApp.app.getSharedPreferences("", Context.MODE_PRIVATE) + } + return shared!! + + } + + + fun saveBoolean(key: String, value: Boolean) { + getShared().edit() + .putBoolean(key, value).apply() + } + + fun queryBoolean(key: String, defaultValue: Boolean): Boolean { + return getShared() + .getBoolean(key, defaultValue) + } + + + + +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/sketch/paint/drawing/tool/Upload.kt b/app/src/main/java/com/ar/sketch/paint/drawing/upload/Upload.kt similarity index 97% rename from app/src/main/java/com/ar/sketch/paint/drawing/tool/Upload.kt rename to app/src/main/java/com/ar/sketch/paint/drawing/upload/Upload.kt index c07f6d9..4d51db2 100644 --- a/app/src/main/java/com/ar/sketch/paint/drawing/tool/Upload.kt +++ b/app/src/main/java/com/ar/sketch/paint/drawing/upload/Upload.kt @@ -1,4 +1,4 @@ -package com.ar.sketch.paint.drawing.tool +package com.ar.sketch.paint.drawing.upload import android.annotation.SuppressLint import android.app.Activity @@ -17,19 +17,12 @@ import android.text.format.Formatter import android.util.Log import android.webkit.WebView import com.google.android.gms.ads.identifier.AdvertisingIdClient -import com.google.android.gms.appset.AppSet -import com.google.android.gms.appset.AppSetIdInfo -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.withContext import org.json.JSONObject import java.io.File import java.text.SimpleDateFormat import java.util.Date import java.util.Locale import java.util.TimeZone -import androidx.lifecycle.lifecycleScope -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.launch object Upload { diff --git a/build.gradle.kts b/build.gradle.kts index ac9937f..785cbfe 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,12 +2,13 @@ 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{ 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 d2c5777..fc2329e 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -3,7 +3,7 @@ pluginManagement { google() mavenCentral() gradlePluginPortal() - + maven { url = uri("https://artifacts.applovin.com/android") } } } @@ -13,8 +13,9 @@ dependencyResolutionManagement { google() mavenCentral() - - + maven { url = uri("https://cboost.jfrog.io/artifactory/chartboost-ads/") } + maven { url = uri("https://android-sdk.is.com") } + maven { url = uri("https://artifact.bytedance.com/repository/pangle") } } }