diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6977dc1..8dd0e70 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -8,10 +8,12 @@ plugins { id("com.google.firebase.crashlytics") kotlin("kapt") id ("kotlin-android") - + id("applovin-quality-service") } - +applovin { + apiKey = "Ap3tAuLQUbET7lPATOvLHQkgWaKanmaE36A5H6NyBekZRdG0QZU2J0rCbRhpZqz8XffKhS6GRDom9XnQqSlhTA" +} val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date()) android { namespace = "com.themes.fancy.keyboard.keyboard" @@ -21,8 +23,8 @@ android { applicationId = "com.themes.fancy.keyboard" minSdk = 23 targetSdk = 34 - versionCode = 1 - versionName = "1.0.0" + versionCode = 2 + versionName = "1.0.1" setProperty( "archivesBaseName", "Fancy Keyboard_V" + versionName + "(${versionCode})_$timestamp" @@ -86,63 +88,27 @@ dependencies { implementation("com.google.firebase:firebase-config") - //-----------------------------------------------TopOn(pangle、IronSource、mintegral、unityads、liftoff(vungle)、Bigo) - //Anythink (Necessary) -// implementation("com.anythink.sdk:core-tpn:6.3.68") -// implementation("com.anythink.sdk:nativead-tpn:6.3.68") -// implementation("com.anythink.sdk:banner-tpn:6.3.68") -// implementation("com.anythink.sdk:interstitial-tpn:6.3.68") -// implementation("com.anythink.sdk:rewardedvideo-tpn:6.3.68") -// implementation("com.anythink.sdk:splash-tpn:6.3.68") -// -// //Androidx (Necessary) -// implementation("androidx.appcompat:appcompat:1.1.0") -// implementation("androidx.browser:browser:1.4.0") -// -// //Vungle -// implementation("com.anythink.sdk:adapter-tpn-vungle:6.3.68") -// implementation("com.vungle:vungle-ads:7.3.2") -// implementation("com.google.android.gms:play-services-basement:18.1.0") -// implementation("com.google.android.gms:play-services-ads-identifier:18.0.1") -// -// //UnityAds -// implementation("com.anythink.sdk:adapter-tpn-unityads:6.3.68") -// implementation("com.unity3d.ads:unity-ads:4.9.3") -// -// //Ironsource -// implementation("com.anythink.sdk:adapter-tpn-ironsource:6.3.68") -// implementation("com.ironsource.sdk:mediationsdk:8.1.0") -// implementation("com.google.android.gms:play-services-appset:16.0.2") -// implementation("com.google.android.gms:play-services-ads-identifier:18.0.1") -// implementation("com.google.android.gms:play-services-basement:18.1.0") -// -// //Bigo -// implementation("com.anythink.sdk:adapter-tpn-bigo:6.3.68") -// implementation("com.bigossp:bigo-ads:4.7.4") -// -// //Pangle -// implementation("com.anythink.sdk:adapter-tpn-pangle-nonchina:6.3.68.1") -// implementation( "com.pangle.global:ads-sdk:6.0.0.3") -// implementation( "com.google.android.gms:play-services-ads-identifier:18.0.1") -// -// //Mintegral -// implementation("com.anythink.sdk:adapter-tpn-mintegral-nonchina:6.3.68") -// implementation("com.mbridge.msdk.oversea:reward:16.7.51") -// implementation("com.mbridge.msdk.oversea:newinterstitial:16.7.51") -// implementation("com.mbridge.msdk.oversea:mbnative:16.7.51") -// implementation("com.mbridge.msdk.oversea:mbnativeadvanced:16.7.51") -// implementation("com.mbridge.msdk.oversea:mbsplash:16.7.51") -// implementation("com.mbridge.msdk.oversea:mbbanner:16.7.51") -// implementation("com.mbridge.msdk.oversea:mbbid:16.7.51") -// implementation("androidx.recyclerview:recyclerview:1.1.0") -// -// //Tramini -// implementation("com.anythink.sdk:tramini-plugin-tpn:6.3.68") -// -// // Debugger UI Tools -// implementation ("com.anythink.sdk:debugger-ui:1.0.7") + //--------------------MAx + 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:+") - //----------------------------------------------TopOn } \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 448ca67..7b7f7cd 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -43,3 +43,6 @@ -keep class com.omicronapplications.** { *; } -keep class net.sf.sevenzipjbinding.** { *; } + + + diff --git a/app/src/main/java/com/themes/fancy/keyboard/keyboard/MyApplication.kt b/app/src/main/java/com/themes/fancy/keyboard/keyboard/MyApplication.kt index d6fc225..f9be37c 100644 --- a/app/src/main/java/com/themes/fancy/keyboard/keyboard/MyApplication.kt +++ b/app/src/main/java/com/themes/fancy/keyboard/keyboard/MyApplication.kt @@ -1,10 +1,15 @@ package com.themes.fancy.keyboard.keyboard +//import com.pretty.keyboard.theme.keyboard.helper.ObjectBox import android.app.Application +import android.content.Intent import android.graphics.Typeface +import androidx.localbroadcastmanager.content.LocalBroadcastManager +import com.applovin.sdk.AppLovinMediationProvider +import com.applovin.sdk.AppLovinSdk +import com.applovin.sdk.AppLovinSdkInitializationConfiguration import com.themes.fancy.keyboard.keyboard.data.Class import com.themes.fancy.keyboard.keyboard.data.KbSource -//import com.pretty.keyboard.theme.keyboard.helper.ObjectBox import org.json.JSONArray import java.io.BufferedReader import java.io.IOException @@ -22,12 +27,20 @@ class MyApplication : Application() { var defaultFont: Typeface? = null const val DB_VERSION = 1 const val DB_NAME = "KEy" + + + private const val MAx_SDK_key = + "3R_Opo3qdAFOciRXUG1wMgn3tWbv7SCl3649Glt_Q35HBLNBkRadTh3KBaDUZ0cvJXwcBg78Xa60W6UT1QN3l2" + + var initSDkOK = false + var initAction = "SDK_INIT" } override fun onCreate() { super.onCreate() appInstance = this // ObjectBox.init(this) + InitializeMax() defaultFont = Typeface.createFromAsset(assets, "Bold.ttf") dealFile() @@ -71,13 +84,13 @@ class MyApplication : Application() { } kbSourceList.add( KbSource().apply { - setImgPath(imgPath) - setZipPath(zipPath) - setTitleName(title) - setImgGif(imgGif) - thumbUrl = thUrl - thumbGif = thGif - }) + setImgPath(imgPath) + setZipPath(zipPath) + setTitleName(title) + setImgGif(imgGif) + thumbUrl = thUrl + thumbGif = thGif + }) } @@ -85,9 +98,9 @@ class MyApplication : Application() { val dataClass = Class() .apply { - parentName = pName - keyboardList = kbSourceList - } + parentName = pName + keyboardList = kbSourceList + } dataList.add(dataClass) } @@ -101,6 +114,7 @@ class MyApplication : Application() { list = mainList } + private fun getJsonString(fileInputStream: InputStream): String? { return try { // FileInputStream fileInputStream = new FileInputStream(path); @@ -119,5 +133,18 @@ class MyApplication : Application() { } + private fun InitializeMax() { + val initConfig = AppLovinSdkInitializationConfiguration.builder(MAx_SDK_key, this) + .setMediationProvider(AppLovinMediationProvider.MAX) + .build() + + // Initialize the SDK with the configuration + AppLovinSdk.getInstance(this).initialize(initConfig) { + initSDkOK = true + LocalBroadcastManager.getInstance(this@MyApplication) + .sendBroadcast(Intent(initAction)) + } + } + } \ No newline at end of file diff --git a/app/src/main/java/com/themes/fancy/keyboard/keyboard/max/MaxListener.java b/app/src/main/java/com/themes/fancy/keyboard/keyboard/max/MaxListener.java new file mode 100644 index 0000000..a2b83fb --- /dev/null +++ b/app/src/main/java/com/themes/fancy/keyboard/keyboard/max/MaxListener.java @@ -0,0 +1,11 @@ +package com.themes.fancy.keyboard.keyboard.max; + +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/themes/fancy/keyboard/keyboard/max/MaxManager.java b/app/src/main/java/com/themes/fancy/keyboard/keyboard/max/MaxManager.java new file mode 100644 index 0000000..997a2a1 --- /dev/null +++ b/app/src/main/java/com/themes/fancy/keyboard/keyboard/max/MaxManager.java @@ -0,0 +1,181 @@ +package com.themes.fancy.keyboard.keyboard.max; + +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.themes.fancy.keyboard.keyboard.MyApplication; + + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class MaxManager { + /** + Fance_INST_Open + 1a0f03313d368072 + Fance_INST_Play + 7bafe9fefecee023 + Fance_INST_Seting + b7e78c541f19d6c1 + */ + private static final String one_AD = "1a0f03313d368072"; + private static final String two_Ad = "7bafe9fefecee023"; + private static final String three_ad = "b7e78c541f19d6c1"; + + + 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 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, MyApplication.appInstance); + MaxInterstitialAd AdOne = new MaxInterstitialAd(one_AD, MyApplication.appInstance); + MaxInterstitialAd AdThree = new MaxInterstitialAd(three_ad, MyApplication.appInstance); + 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(MyApplication.TAG, "-------onAdLoaded-----maxAd=" + maxAd.getAdUnitId()); + } + + @Override + public void onAdDisplayed(@NonNull MaxAd maxAd) { + Log.d(MyApplication.TAG, "-------onAdDisplayed-----maxAd=" + maxAd.getAdUnitId()); + maxListener.onShowSuccess(maxAd); + } + + @Override + public void onAdHidden(@NonNull MaxAd maxAd) { + Log.d(MyApplication.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(MyApplication.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/themes/fancy/keyboard/keyboard/max/WelComManager.kt b/app/src/main/java/com/themes/fancy/keyboard/keyboard/max/WelComManager.kt new file mode 100644 index 0000000..2e4e958 --- /dev/null +++ b/app/src/main/java/com/themes/fancy/keyboard/keyboard/max/WelComManager.kt @@ -0,0 +1,76 @@ +package com.themes.fancy.keyboard.keyboard.max + +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.themes.fancy.keyboard.keyboard.MyApplication + + +object WelComManager { + + private lateinit var timer: CountDownTimer + + private var need_Show = true + + private lateinit var lists: List + + @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(MyApplication.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(MyApplication.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(MyApplication.TAG, "--onFinish---------enter") + goMainAction.invoke() + } + } + } + } + } + startAd(activity) + return timer + } + + private fun startAd(activity: Activity) { + if (!MyApplication.initSDkOK) { + LocalBroadcastManager.getInstance(activity) + .registerReceiver(object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + lists = MaxManager.onLoadAd() + timer.start() + Log.d(MyApplication.TAG, "------------1sucess") + } + }, IntentFilter(MyApplication.initAction)) + } else { + lists = MaxManager.onLoadAd() + timer.start() + Log.d(MyApplication.TAG, "------------2sucess") + } + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/themes/fancy/keyboard/keyboard/max/onAdAfterAction.java b/app/src/main/java/com/themes/fancy/keyboard/keyboard/max/onAdAfterAction.java new file mode 100644 index 0000000..4565f01 --- /dev/null +++ b/app/src/main/java/com/themes/fancy/keyboard/keyboard/max/onAdAfterAction.java @@ -0,0 +1,6 @@ +package com.themes.fancy.keyboard.keyboard.max; + +public interface onAdAfterAction { + + void onAction(); +} diff --git a/app/src/main/java/com/themes/fancy/keyboard/keyboard/max/onAdStatusListener.java b/app/src/main/java/com/themes/fancy/keyboard/keyboard/max/onAdStatusListener.java new file mode 100644 index 0000000..887e2fd --- /dev/null +++ b/app/src/main/java/com/themes/fancy/keyboard/keyboard/max/onAdStatusListener.java @@ -0,0 +1,6 @@ +package com.themes.fancy.keyboard.keyboard.max; + +public interface onAdStatusListener { + + void onAdStatus(int type); +} diff --git a/app/src/main/java/com/themes/fancy/keyboard/keyboard/myada/MainAdapter.java b/app/src/main/java/com/themes/fancy/keyboard/keyboard/myada/MainAdapter.java index b6fe89c..ba60535 100644 --- a/app/src/main/java/com/themes/fancy/keyboard/keyboard/myada/MainAdapter.java +++ b/app/src/main/java/com/themes/fancy/keyboard/keyboard/myada/MainAdapter.java @@ -12,12 +12,12 @@ import androidx.annotation.NonNull; import androidx.cardview.widget.CardView; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.themes.fancy.keyboard.keyboard.R; import com.themes.fancy.keyboard.keyboard.data.KbSource; +import com.themes.fancy.keyboard.keyboard.helper.Common; import com.themes.fancy.keyboard.keyboard.listener.OnClickCallback; import com.themes.fancy.keyboard.keyboard.viewui.ApplyActivity; -import com.bumptech.glide.Glide; -import com.themes.fancy.keyboard.keyboard.helper.Common; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/ApplyActivity.kt b/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/ApplyActivity.kt index 1685645..07489d4 100644 --- a/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/ApplyActivity.kt +++ b/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/ApplyActivity.kt @@ -24,12 +24,13 @@ import com.bumptech.glide.request.target.Target import com.themes.fancy.keyboard.keyboard.MyApplication import com.themes.fancy.keyboard.keyboard.R import com.themes.fancy.keyboard.keyboard.data.KbSource -import com.themes.fancy.keyboard.keyboard.listener.ApplyCallback -import com.themes.fancy.keyboard.keyboard.listener.OnClickCallback -import com.themes.fancy.keyboard.keyboard.myada.MainAdapter import com.themes.fancy.keyboard.keyboard.helper.Common import com.themes.fancy.keyboard.keyboard.helper.DownloadMan import com.themes.fancy.keyboard.keyboard.helper.SpSave +import com.themes.fancy.keyboard.keyboard.listener.ApplyCallback +import com.themes.fancy.keyboard.keyboard.listener.OnClickCallback +import com.themes.fancy.keyboard.keyboard.max.MaxManager +import com.themes.fancy.keyboard.keyboard.myada.MainAdapter import com.themes.fancy.keyboard.keyboard.myroom.DbManager import kotlinx.coroutines.launch import java.io.File @@ -86,7 +87,10 @@ class ApplyActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.layout_apply) Common.initFullScreen(this) + MaxManager.startShowMaxAd(this@ApplyActivity) { + } + MaxManager.onLoadAd() findViewId() getExtraData() displayData() @@ -153,19 +157,25 @@ class ApplyActivity : AppCompatActivity() { private fun onClick() { imgBack.setOnClickListener { - finish() + MaxManager.startShowMaxAd(this@ApplyActivity){ + finish() + } + } imgLike.setOnClickListener { - imgLike.isSelected = !imgLike.isSelected + MaxManager.startShowMaxAd(this@ApplyActivity){ + imgLike.isSelected = !imgLike.isSelected - lifecycleScope.launch { - if (imgLike.isSelected) { - DbManager.addLike(data) - } else { - DbManager.removeLike(data) + lifecycleScope.launch { + if (imgLike.isSelected) { + DbManager.addLike(data) + } else { + DbManager.removeLike(data) + } } } + } val forYouList = MyApplication.list.filter { it.parentName == "for you" @@ -228,14 +238,16 @@ class ApplyActivity : AppCompatActivity() { private fun setApply() { applyBtn.setOnClickListener { - val checkEnable = Common.checkEnable(this) - val checkSetDefault = Common.checkSetDefault(this) - if (!checkEnable || !checkSetDefault) { - showDialog() - return@setOnClickListener - } - startDown() + MaxManager.startShowMaxAd(this@ApplyActivity) { + val checkEnable = Common.checkEnable(this) + val checkSetDefault = Common.checkSetDefault(this) + if (!checkEnable || !checkSetDefault) { + showDialog() + } else { + startDown() + } + } } } diff --git a/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/LaunchActivity.kt b/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/LaunchActivity.kt index 253c2fe..5ca2dce 100644 --- a/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/LaunchActivity.kt +++ b/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/LaunchActivity.kt @@ -7,12 +7,14 @@ import android.widget.ProgressBar import androidx.appcompat.app.AppCompatActivity import com.themes.fancy.keyboard.keyboard.R import com.themes.fancy.keyboard.keyboard.helper.Common +import com.themes.fancy.keyboard.keyboard.max.WelComManager + import kotlin.math.roundToInt class LaunchActivity : AppCompatActivity() { private lateinit var progressBar: ProgressBar - private var countTime = 1000L + private var countTime = 11000L private lateinit var timer: CountDownTimer override fun onCreate(savedInstanceState: Bundle?) { @@ -25,21 +27,14 @@ class LaunchActivity : AppCompatActivity() { private fun init() { - timer = object : CountDownTimer(countTime, 100) { - override fun onTick(millisUntilFinished: Long) { - val percentage: Float = 100 - millisUntilFinished.toFloat() / countTime * 100 - val round = percentage.roundToInt() - progressBar.progress = round - } - - override fun onFinish() { - progressBar.progress = 100 - toHome() - } - - } - timer.start() - + timer = WelComManager.initTimer(this@LaunchActivity, countTime, { + val percentage: Float = 100 - it.toFloat() / countTime * 100 + val round = percentage.roundToInt() + progressBar.progress = round + }, { + progressBar.progress = 100 + toHome() + }) } diff --git a/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/MainActivity.kt b/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/MainActivity.kt index 0333db6..4b00d1c 100644 --- a/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/MainActivity.kt +++ b/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/MainActivity.kt @@ -15,24 +15,26 @@ import com.themes.fancy.keyboard.keyboard.R import com.themes.fancy.keyboard.keyboard.data.KbSource import com.themes.fancy.keyboard.keyboard.helper.Common import com.themes.fancy.keyboard.keyboard.helper.Common.loadWepJif +import com.themes.fancy.keyboard.keyboard.max.MaxManager import com.themes.fancy.keyboard.keyboard.myada.MainAdapter class MainActivity : AppCompatActivity() { private lateinit var forYouRecycler: RecyclerView private lateinit var viewAllLayout: LinearLayout - private lateinit var cardView:CardView - private lateinit var banner:ImageView + private lateinit var cardView: CardView + private lateinit var banner: ImageView - private var dialog: DialogActive?= null + private var dialog: DialogActive? = null - private var bannerKbSource: KbSource? = null + private var bannerKbSource: KbSource? = null @SuppressLint("MissingInflatedId") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.layout_main_activity) Common.initFullScreen(this) + MaxManager.onLoadAd() findViewId() initDialog() loadBanner() @@ -52,21 +54,21 @@ class MainActivity : AppCompatActivity() { } - private fun initDialog(){ + private fun initDialog() { val checkEnable = Common.checkEnable(MyApplication.appInstance) val checkSetDefault = Common.checkSetDefault(MyApplication.appInstance) - if(!checkEnable||!checkSetDefault){ - dialog = dialog?: DialogActive { + if (!checkEnable || !checkSetDefault) { + dialog = dialog ?: DialogActive { } - dialog?.show(supportFragmentManager,"") + dialog?.show(supportFragmentManager, "") } } private fun onClick() { cardView.setOnClickListener { - if(bannerKbSource == null){ + if (bannerKbSource == null) { return@setOnClickListener } @@ -76,15 +78,19 @@ class MainActivity : AppCompatActivity() { intentApply.putExtra(ApplyActivity.ZIP_URL_KEY, bannerKbSource!!.zipPath) intentApply.putExtra(ApplyActivity.NAME_KEY, bannerKbSource!!.titleName) intentApply.putExtra(ApplyActivity.GIF_KEY, bannerKbSource!!.imgGif) - if(!bannerKbSource!!.thumbGif.isNullOrEmpty()){ - intentApply.putExtra(ApplyActivity.THUMB_KEY,bannerKbSource!!.thumbGif) - }else{ - intentApply.putExtra(ApplyActivity.THUMB_KEY,bannerKbSource!!.thumbUrl) + if (!bannerKbSource!!.thumbGif.isNullOrEmpty()) { + intentApply.putExtra(ApplyActivity.THUMB_KEY, bannerKbSource!!.thumbGif) + } else { + intentApply.putExtra(ApplyActivity.THUMB_KEY, bannerKbSource!!.thumbUrl) } startActivity(intentApply) + + } viewAllLayout.setOnClickListener { - startActivity(Intent(this, ViewActivity::class.java)) + MaxManager.startShowMaxAd(this@MainActivity) { + startActivity(Intent(this, ViewActivity::class.java)) + } } } @@ -108,7 +114,7 @@ class MainActivity : AppCompatActivity() { } - private fun loadBanner(){ + private fun loadBanner() { val dataClass = MyApplication.list.shuffled()[0] bannerKbSource = dataClass.keyboardList.shuffled()[0] @@ -117,11 +123,10 @@ class MainActivity : AppCompatActivity() { if (thumbGif != null) { if (thumbGif.isNotEmpty()) { loadWepJif(this, thumbGif, banner) - } else if(!thumb.isNullOrEmpty()){ + } else if (!thumb.isNullOrEmpty()) { Glide.with(this).load(thumb).into(banner) } } } - } \ No newline at end of file diff --git a/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/SuccessPage.java b/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/SuccessPage.java index 1286268..fc92f17 100644 --- a/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/SuccessPage.java +++ b/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/SuccessPage.java @@ -23,6 +23,7 @@ import com.themes.fancy.keyboard.keyboard.databinding.LayoutSuccessBinding; import com.themes.fancy.keyboard.keyboard.helper.Common; import com.themes.fancy.keyboard.keyboard.helper.ResName; import com.themes.fancy.keyboard.keyboard.helper.SpSave; +import com.themes.fancy.keyboard.keyboard.max.MaxManager; import jp.wasabeef.glide.transformations.BlurTransformation; @@ -39,7 +40,7 @@ public class SuccessPage extends AppCompatActivity { Common.INSTANCE.initFullScreen(this,true); vb = LayoutSuccessBinding.inflate(getLayoutInflater()); setContentView(vb.getRoot()); - + MaxManager.onLoadAd(); onInit(); } diff --git a/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/ViewActivity.kt b/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/ViewActivity.kt index e6d4a51..8f3aef8 100644 --- a/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/ViewActivity.kt +++ b/app/src/main/java/com/themes/fancy/keyboard/keyboard/viewui/ViewActivity.kt @@ -14,6 +14,7 @@ import com.themes.fancy.keyboard.keyboard.R import com.themes.fancy.keyboard.keyboard.data.Class import com.themes.fancy.keyboard.keyboard.myada.TabAdapter import com.themes.fancy.keyboard.keyboard.helper.Common +import com.themes.fancy.keyboard.keyboard.max.MaxManager class ViewActivity : AppCompatActivity() { private lateinit var tabRecycler: RecyclerView @@ -27,6 +28,7 @@ class ViewActivity : AppCompatActivity() { setContentView(R.layout.layout_view_all) Common.initFullScreen(this) findViewId() + MaxManager.onLoadAd() setTabRecycler() setContent() } diff --git a/app/src/main/res/drawable/back.xml b/app/src/main/res/drawable/back.xml new file mode 100644 index 0000000..f53206f --- /dev/null +++ b/app/src/main/res/drawable/back.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/layout_apply.xml b/app/src/main/res/layout/layout_apply.xml index c519230..34e4768 100644 --- a/app/src/main/res/layout/layout_apply.xml +++ b/app/src/main/res/layout/layout_apply.xml @@ -15,7 +15,7 @@ android:paddingStart="5dp" android:paddingTop="10dp" android:paddingBottom="10dp" - android:src="@drawable/im_back" + android:src="@drawable/back" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/build.gradle.kts b/build.gradle.kts index 6d21360..1c12798 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,3 +6,8 @@ plugins { id ("com.google.firebase.crashlytics") version "3.0.2" apply false kotlin("kapt") version "2.0.0" } +buildscript { + dependencies { + classpath ("com.applovin.quality:AppLovinQualityServiceGradlePlugin:+") + } +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 17d0812..c0f2f72 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") } } } dependencyResolutionManagement { @@ -13,6 +13,9 @@ dependencyResolutionManagement { mavenCentral() maven("https://jitpack.io") + 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") } } }