diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 45838a9..cadd038 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -17,8 +17,8 @@ android { applicationId = "com.nova.keyboard" minSdk = 23 targetSdk = 34 - versionCode = 3 - versionName = "1.0.2" + versionCode = 4 + versionName = "1.0.3" setProperty("archivesBaseName", "Nova keyboard_V" + versionName + "(${versionCode})_$timestamp") testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/input/board/appskey/keyboard/KeyBoardApp.kt b/app/src/main/java/com/input/board/appskey/keyboard/KeyBoardApp.kt index d4a4735..75a8742 100644 --- a/app/src/main/java/com/input/board/appskey/keyboard/KeyBoardApp.kt +++ b/app/src/main/java/com/input/board/appskey/keyboard/KeyBoardApp.kt @@ -25,10 +25,8 @@ class KeyBoardApp : Application() { const val testMode = false var SDKOK = false + const val AD_INIT_ACTION ="ACTION" - var AD1Ready = false - var AD2Ready = false - var AD3Ready = false } override fun onCreate() { @@ -109,9 +107,9 @@ class KeyBoardApp : Application() { Log.d(UnityAdManager.TAG,"----------------------application init") UnityAds.initialize(this, unityGameID, testMode, object : IUnityAdsInitializationListener { override fun onInitializationComplete() { - + LocalBroadcastManager.getInstance(this@KeyBoardApp).sendBroadcast(Intent(AD_INIT_ACTION)) SDKOK = true - UnityAdManager.loadAllAd() + UnityAdManager.loadAllAdNew() } diff --git a/app/src/main/java/com/input/board/appskey/keyboard/unityad/UnityAdManager.java b/app/src/main/java/com/input/board/appskey/keyboard/unityad/UnityAdManager.java index e8c29eb..29ea3f1 100644 --- a/app/src/main/java/com/input/board/appskey/keyboard/unityad/UnityAdManager.java +++ b/app/src/main/java/com/input/board/appskey/keyboard/unityad/UnityAdManager.java @@ -13,6 +13,8 @@ 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 { @@ -22,98 +24,99 @@ public class UnityAdManager { public static String unitAd2 = "Nova_keyboard_ad_unity_inst_set"; public static String unitAd3 = "Nova_keyboard_ad_unity_inst_theme"; - public static String ACTION = "----"; + + public static String TAG = "--------"; - public static String TAG = "-----------------tt"; - public static String KEY_UNIT ="unitAD"; - - public static String KEY_OK ="unit_ready"; + public static Boolean AD1Ready = false; + public static Boolean AD2Ready = false; + public static Boolean AD3Ready = false; - public static void loadAllAd(){ - loadAd(unitAd1, new onLoadCallBack() { - @Override - public void onIsLoad(boolean loaded) { - Log.d(TAG, "-------unitAd1" + loaded); - - Intent intent = new Intent(ACTION); - intent.putExtra(KEY_UNIT,unitAd1); - intent.putExtra(KEY_OK,loaded); - LocalBroadcastManager.getInstance(KeyBoardApp.appInstance).sendBroadcast(intent); + + + + + 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; + } } - }); - loadAd(unitAd2, new onLoadCallBack() { - @Override - public void onIsLoad(boolean loaded) { - - Intent intent = new Intent(ACTION); - intent.putExtra(KEY_UNIT,unitAd2); - intent.putExtra(KEY_OK,loaded); - LocalBroadcastManager.getInstance(KeyBoardApp.appInstance).sendBroadcast(intent); - - Log.d("------------------tt", "-------unitAd2" + loaded); - } - }); - loadAd(unitAd3, new onLoadCallBack() { - @Override - public void onIsLoad(boolean loaded) { - - Intent intent = new Intent(ACTION); - intent.putExtra(KEY_UNIT,unitAd3); - intent.putExtra(KEY_OK,loaded); - LocalBroadcastManager.getInstance(KeyBoardApp.appInstance).sendBroadcast(intent); - - Log.d(TAG, "-------unitAd3" + loaded); - } - }); + } + 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); + 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); - } - }); - - } - private static void loadAd(String adUnitId, onLoadCallBack callBack) { - UnityAds.load(adUnitId, new IUnityAdsLoadListener() { - @Override - public void onUnityAdsAdLoaded(String placementId) { - Log.d(TAG, "------loaded-unit"+placementId); - callBack.onIsLoad(true); - } - - @Override - public void onUnityAdsFailedToLoad(String placementId, UnityAds.UnityAdsLoadError error, String message) { - Log.d(TAG, "------load fail-unit"+placementId+"-----" + message); - callBack.onIsLoad(false); + Log.d(TAG, "------load fail-unit" + placementId + "-----" + message); } }); } - public static void showUnityAd(Activity activity,String adUnitId, onShowCallBack onShowCallBack) { + + + 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("------------------tt", "--------onUnityAdsShowFailure---message=" + message); + 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(); } @@ -126,7 +129,8 @@ public class UnityAdManager { @Override public void onUnityAdsShowComplete(String placementId, UnityAds.UnityAdsShowCompletionState state) { onShowCallBack.onShowClose(); - Log.d("------------------tt", "--------onUnityAdsShowComplete---"); + Log.d(TAG, "--------onUnityAdsShowComplete---"); + loadAd(placementId); } }); } diff --git a/app/src/main/java/com/input/board/appskey/keyboard/viewUi/ApplyActivity.kt b/app/src/main/java/com/input/board/appskey/keyboard/viewUi/ApplyActivity.kt index e20292b..4b8529e 100644 --- a/app/src/main/java/com/input/board/appskey/keyboard/viewUi/ApplyActivity.kt +++ b/app/src/main/java/com/input/board/appskey/keyboard/viewUi/ApplyActivity.kt @@ -62,7 +62,9 @@ class ApplyActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_apply) - showEnterAd() + showInterAd{ + + } findViewId() getExtraData() displayData() @@ -71,22 +73,7 @@ class ApplyActivity : AppCompatActivity() { } - private fun showEnterAd() { - UnityAdManager.showUnityAd(this, UnityAdManager.unitAd2, object : onShowCallBack { - override fun onShowFail() { - } - - override fun onShowClose() { - UnityAdManager.loadAd(UnityAdManager.unitAd2) - - } - - override fun onShowSuccess() { - - } - }) - } private fun getExtraData() { displayUrl = intent.getStringExtra(DISPLAY_URL_KEY).toString() @@ -215,7 +202,9 @@ class ApplyActivity : AppCompatActivity() { } else { fileList[0]?.path?.let { runOnUiThread { - showInterAd(it) + showInterAd { + apply(it) + } } } @@ -237,21 +226,25 @@ class ApplyActivity : AppCompatActivity() { ).show() } - private fun showInterAd(path: String) { - UnityAdManager.showUnityAd(this, UnityAdManager.unitAd3, object : onShowCallBack { - override fun onShowFail() { - apply(path) - } + private fun showInterAd(action:()->Unit) { + val readyUnitAd = UnityAdManager.getReadyUnitAd() + if (readyUnitAd == null) { + action.invoke() + } else { + UnityAdManager.showUnityAd(this, readyUnitAd, object : onShowCallBack { + override fun onShowFail() { + action.invoke() + } - override fun onShowClose() { - apply(path) - UnityAdManager.loadAd(UnityAdManager.unitAd3) + override fun onShowClose() { + action.invoke() + } - } + override fun onShowSuccess() { - override fun onShowSuccess() { + } - } - }) + }) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/input/board/appskey/keyboard/viewUi/NovaActivity.kt b/app/src/main/java/com/input/board/appskey/keyboard/viewUi/NovaActivity.kt index bf0fa80..dbddc47 100644 --- a/app/src/main/java/com/input/board/appskey/keyboard/viewUi/NovaActivity.kt +++ b/app/src/main/java/com/input/board/appskey/keyboard/viewUi/NovaActivity.kt @@ -22,16 +22,9 @@ class NovaActivity : AppCompatActivity() { private lateinit var progressBar: ProgressBar private lateinit var novaIm: ImageView private var countTime = 11000L - private lateinit var myTimer: Timer private lateinit var timer: CountDownTimer private var needShow = true - private var isShowInterAd = false - - private var hasRecice = false - - private var count = 0 - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -45,96 +38,80 @@ class NovaActivity : AppCompatActivity() { private fun init() { - if (KeyBoardApp.SDKOK) { - Log.d(UnityAdManager.TAG, "-----SDKOK") - startShowAd(UnityAdManager.unitAd1) { - if (it) { - toHome() - } else { - startShowAd(UnityAdManager.unitAd2) { + timer = object : CountDownTimer(countTime, 100) { + override fun onTick(millisUntilFinished: Long) { + Log.d( + UnityAdManager.TAG, + "--------millisUntilFinished=${millisUntilFinished} $needShow" + ) + if (needShow) { + startShowAd({ toHome() - } + }, false) } - } + override fun onFinish() { + Log.d(UnityAdManager.TAG, "--------onFinish needShow=${needShow}") + if (needShow) { + startShowAd({ + toHome() + }, true) + } + } + + } + if (KeyBoardApp.SDKOK) { + Log.d(UnityAdManager.TAG, "--------initSDK true") + timer.start() } else { - Log.d(UnityAdManager.TAG, "-----SDKOK false") LocalBroadcastManager.getInstance(this).registerReceiver(object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { - Log.d(UnityAdManager.TAG, "-----onReceive") - count++ - if (hasRecice) return - if (intent != null) { - val unitAd = intent.getStringExtra(UnityAdManager.KEY_UNIT) - val booleanExtra = intent.getBooleanExtra(UnityAdManager.KEY_OK, false) - if (unitAd != null && booleanExtra) { - hasRecice = true - startShowAd(unitAd) { - toHome() - Log.d(UnityAdManager.TAG, "-----111toHome") - } - } - } - if (count == 3 && !hasRecice) { - Log.d(UnityAdManager.TAG, "-----2222toHome") - toHome() - } - - + Log.d(UnityAdManager.TAG, "--------onReceive") + timer.start() } - }, IntentFilter(UnityAdManager.ACTION)) + + }, IntentFilter(KeyBoardApp.AD_INIT_ACTION)) } -// -// timer = object : CountDownTimer(countTime, 500) { -// override fun onTick(millisUntilFinished: Long) { -// } -// -// override fun onFinish() { -// if (needShow) { -// startShowAd { -// toHome() -// } -// } -// -// } -// } - startAd() } - private fun startAd() { -// timer.start() - } private fun findView() { novaIm = findViewById(R.id.nova_picture) progressBar = findViewById(R.id.nova_progress) } - private fun startShowAd(id: String, action: (isSHow: Boolean) -> Unit) { - UnityAdManager.showUnityAd(this, id, object : onShowCallBack { - override fun onShowFail() { - needShow = true - UnityAdManager.loadAd(UnityAdManager.unitAd1) - action.invoke(false) + + private fun startShowAd(action: () -> Unit, isFinish: Boolean) { + val readyUnitAd = UnityAdManager.getReadyUnitAd() + if (readyUnitAd != null) { + needShow = false + UnityAdManager.showUnityAd(this@NovaActivity, readyUnitAd, object : + onShowCallBack { + override fun onShowFail() { + action.invoke() + } + + override fun onShowClose() { + action.invoke() + } + + override fun onShowSuccess() { + + } + + }) + } else { + if (isFinish) { + action.invoke() } - override fun onShowClose() { - action.invoke(true) - UnityAdManager.loadAd(UnityAdManager.unitAd1) - UnityAdManager.loadAd(UnityAdManager.unitAd2) - UnityAdManager.loadAd(UnityAdManager.unitAd3) - - } - - override fun onShowSuccess() { - needShow = false - } - }) + } } + private fun toHome() { startActivity(Intent(this, HomeActivity::class.java)) finish() @@ -142,7 +119,7 @@ class NovaActivity : AppCompatActivity() { override fun onDestroy() { super.onDestroy() -// timer.cancel() + timer.cancel() }