diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 6d71e1d..5629592 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -19,8 +19,8 @@ android {
applicationId = "com.wallart.art.wallpapers.hd"
minSdk = 23
targetSdk = 34
- versionCode = 2
- versionName = "1.0.1"
+ versionCode = 3
+ versionName = "1.0.2"
setProperty("archivesBaseName", "Art Wallpaper_V" + versionName + "(${versionCode})_$timestamp")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
@@ -81,4 +81,7 @@ dependencies {
implementation(platform("com.google.firebase:firebase-bom:32.3.1"))
implementation("com.google.firebase:firebase-analytics-ktx")
implementation ("com.google.firebase:firebase-crashlytics-ktx")
+
+ //-----------------------------Unity Ads SDK
+ implementation("com.unity3d.ads:unity-ads:4.9.1")
}
\ No newline at end of file
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index f73aaf7..54e9f65 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -31,4 +31,40 @@
-dontwarn org.conscrypt.ConscryptHostnameVerifier
-dontwarn org.openjsse.javax.net.ssl.SSLParameters
-dontwarn org.openjsse.javax.net.ssl.SSLSocket
- -dontwarn org.openjsse.net.ssl.OpenJSSE
\ No newline at end of file
+ -dontwarn org.openjsse.net.ssl.OpenJSSE
+
+
+ #=======================================UNity SDK
+ # Keep filenames and line numbers for stack traces
+ -keepattributes SourceFile,LineNumberTable
+
+ # Keep JavascriptInterface for WebView bridge
+ -keepattributes JavascriptInterface
+
+
+ -keep class android.webkit.JavascriptInterface {
+ *;
+ }
+
+ # Keep all classes in Unity Ads package
+
+ -keep class com.unity3d.ads.** {
+ *;
+ }
+
+ # Keep all classes in Unity Services package
+ -keep class com.unity3d.services.** {
+ *;
+ }
+
+ -keep class com.google.android.gms.ads.initialization.** {
+ *;
+ }
+
+ -keep class com.google.android.gms.ads.MobileAds {
+ *;
+ }
+
+ -dontwarn com.google.ads.mediation.admob.*
+ -dontwarn com.google.android.gms.ads.**
+ #==================================UNity SDK
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a7af385..f3a5558 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -27,11 +27,11 @@
android:exported="true"
android:screenOrientation="fullSensor"
tools:ignore="DiscouragedApi">
-
-
+
+
-
-
+
+
-
-
-
-
-
- const val MAX_SDK = "3cUMfTcsZKzlJevxK4IkNysgDAeQA4B5w332p3g8B9ZAgC54WQNZLVxuxnCx4sCHA5StLJnDTAFa68mFTi8rd8"
const val AD_INIT_ACTION = "on_success_action"
var initSDK = false
}
@@ -107,7 +111,24 @@ class MyApp : Application() {
private fun initSDK() {
+ Log.d(UnityAdManager.TAG, "----------------------application init")
+ UnityAds.initialize(this, UnityAdManager.unityGameID, UnityAdManager.testMode, object :
+ IUnityAdsInitializationListener {
+ override fun onInitializationComplete() {
+ LocalBroadcastManager.getInstance(this@MyApp).sendBroadcast(Intent(AD_INIT_ACTION))
+ initSDK = true
+ UnityAdManager.loadAllAdNew()
+ }
+
+ override fun onInitializationFailed(
+ error: UnityAds.UnityAdsInitializationError?,
+ message: String?
+ ) {
+ initSDK = false
+ }
+
+ });
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/page/PreviewAbility.kt b/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/page/PreviewAbility.kt
index 556f507..601fae8 100644
--- a/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/page/PreviewAbility.kt
+++ b/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/page/PreviewAbility.kt
@@ -17,6 +17,8 @@ import com.cute.girl.hd.pink.img.wallpaper.adapter.ImagePagerAdapter
import com.cute.girl.hd.pink.img.wallpaper.databinding.AbilityPreviewBinding
import com.cute.girl.hd.pink.img.wallpaper.entity.Data
import com.cute.girl.hd.pink.img.wallpaper.entity.IntentConstants
+import com.cute.girl.hd.pink.img.wallpaper.unityad.UnityAdManager
+import com.cute.girl.hd.pink.img.wallpaper.unityad.onShowCallBack
import com.cute.girl.hd.pink.img.wallpaper.utils.DownloadUtil
import com.cute.girl.hd.pink.img.wallpaper.utils.GlobalExt.getString
import com.cute.girl.hd.pink.img.wallpaper.utils.GlobalExt.hide
@@ -41,7 +43,6 @@ class PreviewAbility : AppCompatActivity(), EasyPermissions.PermissionCallbacks
private var mAction = 0//0设置壁纸 1下载壁纸
-
companion object {
fun start(context: Context, bean: Data) {
val intent = Intent(context, PreviewAbility::class.java)
@@ -60,7 +61,25 @@ class PreviewAbility : AppCompatActivity(), EasyPermissions.PermissionCallbacks
}
private fun showMyMAx(action: () -> Unit) {
- action.invoke()
+ val readyUnitAd = UnityAdManager.getReadyUnitAd()
+ if (readyUnitAd == null) {
+ action.invoke()
+ } else {
+ UnityAdManager.showUnityAd(this, readyUnitAd, object : onShowCallBack {
+ override fun onShowFail() {
+ action.invoke()
+ }
+
+ override fun onShowClose() {
+ action.invoke()
+ }
+
+ override fun onShowSuccess() {
+
+ }
+
+ })
+ }
}
diff --git a/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/page/StartAbility.kt b/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/page/StartAbility.kt
index 824d48d..630ed5d 100644
--- a/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/page/StartAbility.kt
+++ b/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/page/StartAbility.kt
@@ -11,14 +11,16 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.cute.girl.hd.pink.img.wallpaper.MyApp
import com.cute.girl.hd.pink.img.wallpaper.databinding.AbilityStartBinding
+import com.cute.girl.hd.pink.img.wallpaper.unityad.UnityAdManager
+import com.cute.girl.hd.pink.img.wallpaper.unityad.onShowCallBack
class StartAbility : AppCompatActivity() {
private lateinit var binding: AbilityStartBinding
- private var time =10000L
+ private var time = 13000L
private var needShow = true
- private lateinit var countDownTimer: CountDownTimer
+ private lateinit var countDownTimer: CountDownTimer
override fun onCreate(savedInstanceState: Bundle?) {
@@ -26,41 +28,42 @@ class StartAbility : AppCompatActivity() {
binding = AbilityStartBinding.inflate(layoutInflater)
setContentView(binding.root)
- countDownTimer = object : CountDownTimer(time,100){
+ countDownTimer = object : CountDownTimer(time, 100) {
override fun onTick(millisUntilFinished: Long) {
+ Log.d(
+ UnityAdManager.TAG,
+ "--------millisUntilFinished=${millisUntilFinished} $needShow"
+ )
if (needShow) {
- ShowAd {}
+ onShowAd({
+ setupViews()
+ }, false)
}
}
override fun onFinish() {
+ Log.d(UnityAdManager.TAG, "--------onFinish needShow=${needShow}")
if (needShow) {
- ShowAd {
+ onShowAd({
setupViews()
- }
+ }, true)
}
}
}
- startAd()
- }
- private fun startAd() {
- if (!MyApp.initSDK) {
+ if (MyApp.initSDK) {
+ Log.d(UnityAdManager.TAG, "--------initSDK true")
+ countDownTimer.start()
+ } else {
LocalBroadcastManager.getInstance(this).registerReceiver(object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
- loadAdGo()
- Log.d("------------","------------1sucess")
+ Log.d(UnityAdManager.TAG, "--------onReceive")
+ countDownTimer.start()
}
- }, IntentFilter(MyApp.AD_INIT_ACTION))
- } else {
- loadAdGo()
- Log.d("------------","------------2sucess")
- }
- }
- private fun loadAdGo() {
-// lists = MaxUtils.getAllAd()
- countDownTimer.start()
+ }, IntentFilter(MyApp.AD_INIT_ACTION))
+ }
+
}
private fun setupViews() {
@@ -68,9 +71,31 @@ class StartAbility : AppCompatActivity() {
finish()
}
- private fun ShowAd(action: () -> Unit) {
- setupViews()
+ private fun onShowAd(action: () -> Unit, isFinish: Boolean) {
+ val readyUnitAd = UnityAdManager.getReadyUnitAd()
+ if (readyUnitAd != null) {
+ needShow = false
+ UnityAdManager.showUnityAd(this@StartAbility, readyUnitAd, object :
+ onShowCallBack {
+ override fun onShowFail() {
+ action.invoke()
+ }
+ override fun onShowClose() {
+ action.invoke()
+ }
+
+ override fun onShowSuccess() {
+
+ }
+
+ })
+ } else {
+ if (isFinish) {
+ action.invoke()
+ }
+
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/unityad/UnityAdManager.java b/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/unityad/UnityAdManager.java
new file mode 100644
index 0000000..654ce9b
--- /dev/null
+++ b/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/unityad/UnityAdManager.java
@@ -0,0 +1,132 @@
+package com.cute.girl.hd.pink.img.wallpaper.unityad;
+
+import android.app.Activity;
+import android.util.Log;
+
+import com.unity3d.ads.IUnityAdsLoadListener;
+import com.unity3d.ads.IUnityAdsShowListener;
+import com.unity3d.ads.UnityAds;
+import com.unity3d.ads.UnityAdsShowOptions;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Objects;
+
+public class UnityAdManager {
+ public static String unityGameID = "5649501";
+
+ public static Boolean testMode = true;
+
+ public static String unitAd1 = "Art_Wallpaper_ad_unity_inst_open";
+ public static String unitAd2 = "Art_Wallpaper_ad_unity_inst_set";
+ public static String unitAd3 = "Art_Wallpaper_ad_unity_inst_theme";
+
+ public static Boolean AD1Ready = false;
+ public static Boolean AD2Ready = false;
+ public static Boolean AD3Ready = false;
+
+
+
+
+ public static String TAG = "-------TAG";
+
+
+
+
+
+
+ public static void loadAllAdNew() {
+ if (!AD1Ready)
+ loadAd(unitAd1);
+ if (!AD2Ready)
+ loadAd(unitAd2);
+ if (!AD3Ready)
+ loadAd(unitAd3);
+ }
+
+ public static String getReadyUnitAd() {
+ ArrayList unitList = new ArrayList<>();
+ unitList.add(unitAd1);
+ unitList.add(unitAd2);
+ unitList.add(unitAd3);
+ Collections.shuffle(unitList);
+
+ for (String unit : unitList) {
+ if (Objects.equals(unit, unitAd1)) {
+ if (AD1Ready) {
+ return unit;
+ }
+ } else if (Objects.equals(unit, unitAd2)) {
+ if (AD2Ready) {
+ return unit;
+ }
+ } else if (Objects.equals(unit, unitAd3)) {
+ if (AD3Ready) {
+ return unit;
+ }
+ }
+ }
+ return null;
+ }
+
+ public static void loadAd(String adUnitId) {
+ UnityAds.load(adUnitId, new IUnityAdsLoadListener() {
+ @Override
+ public void onUnityAdsAdLoaded(String placementId) {
+ Log.d(TAG, "------loaded-unit" + placementId);
+ if (Objects.equals(placementId, unitAd1)) {
+ AD1Ready = true;
+ } else if (Objects.equals(placementId, unitAd2)) {
+ AD2Ready = true;
+ } else if (Objects.equals(placementId, unitAd3)) {
+ AD3Ready = true;
+ }
+
+ }
+
+ @Override
+ public void onUnityAdsFailedToLoad(String placementId, UnityAds.UnityAdsLoadError error, String message) {
+ Log.d(TAG, "------load fail-unit" + placementId + "-----" + message);
+ }
+ });
+
+ }
+
+
+
+ public static void showUnityAd(Activity activity, String adUnitId, onShowCallBack onShowCallBack) {
+ UnityAds.show(activity, adUnitId, new UnityAdsShowOptions(), new IUnityAdsShowListener() {
+ @Override
+ public void onUnityAdsShowFailure(String placementId, UnityAds.UnityAdsShowError error, String message) {
+ onShowCallBack.onShowFail();
+ Log.d(TAG, "--------onUnityAdsShowFailure---message=" + message);
+ }
+
+ @Override
+ public void onUnityAdsShowStart(String placementId) {
+ Log.d(TAG, "--------onUnityAdsShowStart---=" + placementId);
+ if (Objects.equals(placementId, unitAd1)) {
+ AD1Ready = false;
+ } else if (Objects.equals(placementId, unitAd2)) {
+ AD2Ready = false;
+ } else if (Objects.equals(placementId, unitAd3)) {
+ AD3Ready = false;
+ }
+ onShowCallBack.onShowSuccess();
+
+ }
+
+ @Override
+ public void onUnityAdsShowClick(String placementId) {
+
+ }
+
+ @Override
+ public void onUnityAdsShowComplete(String placementId, UnityAds.UnityAdsShowCompletionState state) {
+ onShowCallBack.onShowClose();
+ Log.d(TAG, "--------onUnityAdsShowComplete---");
+ loadAd(placementId);
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/unityad/onLoadCallBack.java b/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/unityad/onLoadCallBack.java
new file mode 100644
index 0000000..923ba06
--- /dev/null
+++ b/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/unityad/onLoadCallBack.java
@@ -0,0 +1,6 @@
+package com.cute.girl.hd.pink.img.wallpaper.unityad;
+
+public interface onLoadCallBack {
+
+ void onIsLoad(boolean loaded);
+}
diff --git a/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/unityad/onShowCallBack.java b/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/unityad/onShowCallBack.java
new file mode 100644
index 0000000..3548c0c
--- /dev/null
+++ b/app/src/main/java/com/cute/girl/hd/pink/img/wallpaper/unityad/onShowCallBack.java
@@ -0,0 +1,8 @@
+package com.cute.girl.hd.pink.img.wallpaper.unityad;
+
+public interface onShowCallBack {
+
+ void onShowFail( );
+ void onShowClose( );
+ void onShowSuccess( );
+}