广告展示逻辑优化
This commit is contained in:
parent
aeda180cc8
commit
f77d2152be
@ -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"
|
||||
}
|
||||
|
||||
@ -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()
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -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<String> 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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -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() {
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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<ProgressBar>(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()
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user