From b148feff51d7f2805b1af378ad07740bfbeb53a8 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Sun, 2 Jul 2017 10:36:38 -0700 Subject: Test tags --- .../com/pitchedapps/frost/SettingsActivity.kt | 14 ++++++--- .../kotlin/com/pitchedapps/frost/utils/iab/IAB.kt | 36 ++++++++++++---------- .../com/pitchedapps/frost/utils/iab/IABDialogs.kt | 15 +++++++-- app/src/main/res/values/strings_preferences | 3 ++ 4 files changed, 44 insertions(+), 24 deletions(-) (limited to 'app/src') diff --git a/app/src/main/kotlin/com/pitchedapps/frost/SettingsActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/SettingsActivity.kt index a38e124d..0d084b51 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/SettingsActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/SettingsActivity.kt @@ -15,10 +15,7 @@ import com.mikepenz.community_material_typeface_library.CommunityMaterial import com.mikepenz.google_material_typeface_library.GoogleMaterial import com.pitchedapps.frost.settings.* import com.pitchedapps.frost.utils.* -import com.pitchedapps.frost.utils.iab.IAB -import com.pitchedapps.frost.utils.iab.IS_FROST_PRO -import com.pitchedapps.frost.utils.iab.IabBroadcastReceiver -import com.pitchedapps.frost.utils.iab.openPlayProPurchase +import com.pitchedapps.frost.utils.iab.* /** @@ -28,7 +25,8 @@ class SettingsActivity : KPrefActivity(), IabBroadcastReceiver.IabBroadcastListe override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if (!(IAB.helper?.handleActivityResult(requestCode, resultCode, data) ?: false)) - super.onActivityReenter(resultCode, data) + super.onActivityResult(requestCode, resultCode, data) + adapter.notifyDataSetChanged() } @@ -67,6 +65,12 @@ class SettingsActivity : KPrefActivity(), IabBroadcastReceiver.IabBroadcastListe iicon = CommunityMaterial.Icon.cmd_flask_outline } + plainText(R.string.restore_purchases) { + descRes = R.string.restore_purchases + iicon = GoogleMaterial.Icon.gmd_refresh + onClick = { this@SettingsActivity.restorePurchases(); true } + } + plainText(R.string.about_frost) { iicon = GoogleMaterial.Icon.gmd_info onClick = { diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IAB.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IAB.kt index ec63cce3..e047e2ff 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IAB.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IAB.kt @@ -3,11 +3,13 @@ package com.pitchedapps.frost.utils.iab import android.app.Activity import android.content.Context import ca.allanwang.kau.utils.isFromGooglePlay -import ca.allanwang.kau.utils.startPlayStoreLink import com.crashlytics.android.answers.PurchaseEvent import com.pitchedapps.frost.BuildConfig -import com.pitchedapps.frost.R -import com.pitchedapps.frost.utils.* +import com.pitchedapps.frost.SettingsActivity +import com.pitchedapps.frost.utils.L +import com.pitchedapps.frost.utils.Prefs +import com.pitchedapps.frost.utils.frostAnswers +import com.pitchedapps.frost.utils.frostAnswersCustom /** * Created by Allan Wang on 2017-06-23. @@ -48,23 +50,20 @@ private const val FROST_PRO = "frost_pro" val IS_FROST_PRO: Boolean get() = (BuildConfig.DEBUG && Prefs.debugPro) || Prefs.previouslyPro -private fun Context.checkFromPlay(): Boolean { - val isPlay = isFromGooglePlay || BuildConfig.DEBUG - if (!isPlay) materialDialogThemed { - title(R.string.uh_oh) - content(R.string.play_store_not_found) - positiveText(R.string.kau_ok) - neutralText(R.string.kau_play_store) - onNeutral { _, _ -> startPlayStoreLink(R.string.play_store_package_id) } - } - return isPlay +private val Context.isFrostPlay: Boolean + get() = isFromGooglePlay || BuildConfig.DEBUG + +fun SettingsActivity.restorePurchases() { + } -fun Activity.openPlayProPurchase(code: Int) = openPlayPurchase(FROST_PRO, code) +fun Activity.openPlayProPurchase(code: Int) = openPlayPurchase(FROST_PRO, code) { + Prefs.previouslyPro = true +} -fun Activity.openPlayPurchase(key: String, code: Int) { +fun Activity.openPlayPurchase(key: String, code: Int, onSuccess: (key: String) -> Unit) { L.d("Open play purchase $key $code") - if (!checkFromPlay()) return + if (!isFrostPlay) return playStoreNotFound() frostAnswersCustom("PLAY_PURCHASE") { putCustomAttribute("Key", key) } @@ -79,7 +78,10 @@ fun Activity.openPlayPurchase(key: String, code: Int) { L.d("IAB: inventory ${inv.allOwnedSkus}") IAB.helper!!.launchPurchaseFlow(this@openPlayPurchase, key, code) { result, _ -> - if (result.isSuccess) playStorePurchasedSuccessfully(key) + if (result.isSuccess) { + onSuccess(key) + playStorePurchasedSuccessfully(key) + } frostAnswers { logPurchase(PurchaseEvent() .putItemId(key) diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IABDialogs.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IABDialogs.kt index f0a544f7..08958480 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IABDialogs.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/iab/IABDialogs.kt @@ -40,8 +40,19 @@ fun Activity.playStoreNoLongerPro() { } } -fun Activity.playStoreNotAvailable() { - playStoreLog("Store not available") +fun Activity.playStoreNotFound() { + L.d("Play store not found") + materialDialogThemed { + title(R.string.uh_oh) + content(R.string.play_store_not_found) + positiveText(R.string.kau_ok) + neutralText(R.string.kau_play_store) + onNeutral { _, _ -> startPlayStoreLink(R.string.play_store_package_id) } + } +} + +fun Activity.playStoreProNotAvailable() { + playStoreLog("Pro found; store not available") materialDialogThemed { title(R.string.uh_oh) content(R.string.play_store_not_found) diff --git a/app/src/main/res/values/strings_preferences b/app/src/main/res/values/strings_preferences index 36bba6ad..faaaf96c 100644 --- a/app/src/main/res/values/strings_preferences +++ b/app/src/main/res/values/strings_preferences @@ -57,4 +57,7 @@ Restart Frost Crashlytics will only submit logs when a crash occurs or if errors are found and the app is restarted. Clicking here will restart the app and flush whatever issues are currently found. + Restore Purchases + Restore any previous purchases from the Play Store + \ No newline at end of file -- cgit v1.2.3