diff --git a/app/src/main/kotlin/jackall/moncalc/Const.kt b/app/src/main/kotlin/jackall/moncalc/Const.kt index 94bc809..eb58c14 100644 --- a/app/src/main/kotlin/jackall/moncalc/Const.kt +++ b/app/src/main/kotlin/jackall/moncalc/Const.kt @@ -10,11 +10,13 @@ const val questDataVersion = 0 const val moveButtonActiveAlpha = 1.0f const val moveButtonInactiveAlpha = 0.7f - const val develop = false + const val develop = true const val interStitialUnitId = "ca-app-pub-6316747512041615/4023527884" const val overlayBannerUnitId = "ca-app-pub-6316747512041615/2748607687" const val BannerUnitId = "ca-app-pub-6316747512041615/4707243530" const val historyRectangleBannerUnitId = "ca-app-pub-6316747512041615/5769770113" + + const val interstitialFrequency = 3 } } \ No newline at end of file diff --git a/app/src/main/kotlin/jackall/moncalc/activity/MainActivity.kt b/app/src/main/kotlin/jackall/moncalc/activity/MainActivity.kt index c8a1050..bc311f2 100644 --- a/app/src/main/kotlin/jackall/moncalc/activity/MainActivity.kt +++ b/app/src/main/kotlin/jackall/moncalc/activity/MainActivity.kt @@ -16,6 +16,7 @@ import jackall.moncalc.databinding.ActivityMainBinding import jackall.moncalc.db.MonstDataRealmHelper import jackall.moncalc.db.QuestRecordRealmHelper +import jackall.moncalc.model.AdInterstitial import jackall.moncalc.utils.AdUtil import jackall.moncalc.utils.MySharedPref import jackall.moncalc.viewmodel.MainViewModel @@ -34,6 +35,7 @@ val mainViewModel by lazy { ViewModelProviders.of(this, MainViewModel.Factory(this)).get(MainViewModel::class.java) } val mySharedPref by lazy { MySharedPref(this, PreferenceNames.CONFIG) } val monstDataRealmHelper = MonstDataRealmHelper() + val adInterstitial by lazy { AdInterstitial(this) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -109,5 +111,6 @@ override fun onStart() { super.onStart() AdUtil.startBannerAd(this, mainBinding.root.main_banner_layout, AdSize.BANNER, Const.BannerUnitId) + adInterstitial.showInterstitial() } } \ No newline at end of file diff --git a/app/src/main/kotlin/jackall/moncalc/common/PreferenceKeys.kt b/app/src/main/kotlin/jackall/moncalc/common/PreferenceKeys.kt index 17e6c85..155ff2b 100644 --- a/app/src/main/kotlin/jackall/moncalc/common/PreferenceKeys.kt +++ b/app/src/main/kotlin/jackall/moncalc/common/PreferenceKeys.kt @@ -11,5 +11,6 @@ QUESTDATAVERSION(PreferenceNames.CONFIG, Int::class.java, "questDataVersion"), TEMPLEPOS(PreferenceNames.CONFIG, Int::class.java, "templePos"), FRUITPOS(PreferenceNames.CONFIG, Int::class.java, "fruitPos"), - GRADEPOS(PreferenceNames.CONFIG, Int::class.java, "gradePos") + GRADEPOS(PreferenceNames.CONFIG, Int::class.java, "gradePos"), + INSTECOUNT(PreferenceNames.CONFIG, Int::class.java, "interstitialCount") } \ No newline at end of file diff --git a/app/src/main/kotlin/jackall/moncalc/model/AdInterstitial.kt b/app/src/main/kotlin/jackall/moncalc/model/AdInterstitial.kt new file mode 100644 index 0000000..e7b06c5 --- /dev/null +++ b/app/src/main/kotlin/jackall/moncalc/model/AdInterstitial.kt @@ -0,0 +1,88 @@ +package jackall.moncalc.model + +import android.content.Context +import android.util.Log +import com.google.android.gms.ads.AdListener +import com.google.android.gms.ads.AdRequest +import com.google.android.gms.ads.InterstitialAd +import jackall.moncalc.Const +import jackall.moncalc.common.PreferenceKeys +import jackall.moncalc.common.PreferenceNames +import jackall.moncalc.utils.MySharedPref + +/** + * Created by matsumoto_k on 2017/11/07. + */ +class AdInterstitial(val context: Context) { + + private val EmulatorTest = false + private var UnitID: String? = null + // publisher ID + private val AdMobID = Const.interStitialUnitId + // Test ID + private val EmulatorTestID = Const.interStitialUnitId + private val mySharedPref = MySharedPref(context, PreferenceNames.CONFIG) + + + fun showInterstitial() { + if (mySharedPref.getValue(PreferenceKeys.INSTECOUNT, Int::class.java, 1) as Int == Const.interstitialFrequency) { + mySharedPref.putValue(PreferenceKeys.INSTECOUNT, Int::class.java, 1) + if (EmulatorTest) { + UnitID = EmulatorTestID + } else { + UnitID = AdMobID + } + + Log.d("debug", UnitID) + + // インタースティシャルを作成する。 + val interstitialAd = InterstitialAd(context) + interstitialAd.adUnitId = UnitID + + // Set the AdListener. + interstitialAd.adListener = object : AdListener() { + + override fun onAdLoaded() { + interstitialAd.show() + } + + + override fun onAdFailedToLoad(errorCode: Int) { + val message = String.format("onAdFailedToLoad (%s)", getErrorReason(errorCode)) + Log.d("debug", message) + } + } + + val adRequest: AdRequest + + if (EmulatorTest) { + // Test + adRequest = AdRequest.Builder() + .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) + .addTestDevice(EmulatorTestID) + .build() + } else { + // 広告リクエストを作成する (本番) + println("本番") + adRequest = AdRequest.Builder().build() + } + + // Load the interstitial ad. + interstitialAd.loadAd(adRequest) + } else { + mySharedPref.putValue(PreferenceKeys.INSTECOUNT, Int::class.java, mySharedPref.getValue(PreferenceKeys.INSTECOUNT, Int::class.java, 1) as Int + 1) + } + } + + // Gets a string error reason from an error code. + private fun getErrorReason(errorCode: Int): String { + var errorReason = "" + when (errorCode) { + AdRequest.ERROR_CODE_INTERNAL_ERROR -> errorReason = "ERROR_CODE_INTERNAL_ERROR" + AdRequest.ERROR_CODE_INVALID_REQUEST -> errorReason = "ERROR_CODE_INVALID_REQUEST" + AdRequest.ERROR_CODE_NETWORK_ERROR -> errorReason = "ERROR_CODE_NETWORK_ERROR" + AdRequest.ERROR_CODE_NO_FILL -> errorReason = "ERROR_CODE_NO_FILL" + } + return errorReason + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/jackall/moncalc/utils/AdUtil.kt b/app/src/main/kotlin/jackall/moncalc/utils/AdUtil.kt index 3a40e38..2cc0122 100644 --- a/app/src/main/kotlin/jackall/moncalc/utils/AdUtil.kt +++ b/app/src/main/kotlin/jackall/moncalc/utils/AdUtil.kt @@ -13,6 +13,7 @@ class AdUtil { companion object { fun startBannerAd(context: Context, framelayout: FrameLayout, adSize: AdSize, bannerUnitId: String) { + return MobileAds.initialize(context) val adBannerView = AdView(context) adBannerView.adSize = adSize