From 251e697e8e3a17370359273c5fcf7cc2a9f33912 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Sun, 24 Sep 2017 16:28:15 -0400 Subject: Enhancement/rating (#334) * Add rating button after one month * Add rating for pro purchase and clean dialogs * Update kau --- .../pitchedapps/frost/activities/MainActivity.kt | 2 +- .../frost/activities/SettingsActivity.kt | 5 ++- .../kotlin/com/pitchedapps/frost/utils/Utils.kt | 10 ++++++ .../com/pitchedapps/frost/utils/iab/IABDialogs.kt | 36 ++-------------------- app/src/main/res/values/strings_play_store.xml | 6 +--- gradle.properties | 2 +- 6 files changed, 18 insertions(+), 43 deletions(-) diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt index 53480f86..14ee3904 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt @@ -117,7 +117,7 @@ class MainActivity : BaseActivity(), SearchWebView.SearchContract, if (BuildConfig.VERSION_CODE > Prefs.versionCode) { Prefs.versionCode = BuildConfig.VERSION_CODE if (!BuildConfig.DEBUG) { - showChangelog(R.xml.frost_changelog, Prefs.textColor) { theme() } + frostChangelog() frostAnswersCustom("Version", "Version code" to BuildConfig.VERSION_CODE, "Version name" to BuildConfig.VERSION_NAME, diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt index c51b6fe5..0e0599bf 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt @@ -14,7 +14,6 @@ import ca.allanwang.kau.kpref.activity.KPrefAdapterBuilder import ca.allanwang.kau.kpref.activity.items.KPrefItemBase import ca.allanwang.kau.ui.views.RippleCanvas import ca.allanwang.kau.utils.* -import ca.allanwang.kau.xml.showChangelog import com.mikepenz.community_material_typeface_library.CommunityMaterial import com.mikepenz.google_material_typeface_library.GoogleMaterial import com.pitchedapps.frost.BuildConfig @@ -72,7 +71,7 @@ class SettingsActivity : KPrefActivity(), FrostBilling by IABSettings() { accentColor = { Prefs.accentColor } } - override fun onCreateKPrefs(savedInstanceState: android.os.Bundle?): KPrefAdapterBuilder.() -> Unit = { + override fun onCreateKPrefs(savedInstanceState: Bundle?): KPrefAdapterBuilder.() -> Unit = { subItems(R.string.appearance, getAppearancePrefs()) { descRes = R.string.appearance_desc iicon = GoogleMaterial.Icon.gmd_palette @@ -180,7 +179,7 @@ class SettingsActivity : KPrefActivity(), FrostBilling by IABSettings() { items(Support.values().map { string(it.title) }) itemsCallback { _, _, which, _ -> Support.values()[which].sendEmail(this@SettingsActivity) } } - R.id.action_changelog -> showChangelog(R.xml.frost_changelog, Prefs.textColor) { theme() } + R.id.action_changelog -> frostChangelog() else -> return super.onOptionsItemSelected(item) } return true diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt index e5e1a706..aeddd20c 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt @@ -16,6 +16,7 @@ import android.widget.TextView import ca.allanwang.kau.mediapicker.createMediaFile import ca.allanwang.kau.mediapicker.createPrivateMediaFile import ca.allanwang.kau.utils.* +import ca.allanwang.kau.xml.showChangelog import com.afollestad.materialdialogs.MaterialDialog import com.bumptech.glide.RequestBuilder import com.bumptech.glide.load.resource.bitmap.CircleCrop @@ -197,3 +198,12 @@ fun Context.resolveActivityForUri(uri: Uri): Boolean { inline val String?.isFacebookUrl get() = this != null && this.contains(FACEBOOK_COM) +fun Context.frostChangelog() = showChangelog(R.xml.frost_changelog, Prefs.textColor) { + theme() + if (System.currentTimeMillis() - Prefs.installDate > 2592000000) { //show after 1 month + neutralText(R.string.kau_rate) + onNeutral { _, _ -> startPlayStoreLink(R.string.play_store_package_id) } + } +} + + 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 e997731b..8ddb46d2 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 @@ -78,44 +78,14 @@ fun Activity.playStorePurchaseUnsupported() { } } -fun Activity.playStoreProNotAvailable() { - L.d("Pro query; store not available") - materialDialogThemed { - title(R.string.uh_oh) - content(R.string.play_store_not_found_pro_query) - positiveText(R.string.kau_ok) - neutralText(R.string.kau_play_store) - onNeutral { _, _ -> startPlayStoreLink(R.string.play_store_package_id) } - } -} - -fun Activity.playStoreGenericError(text: String? = "Store generic error") { - if (text != null) playStoreLog("IAB: $text") - materialDialogThemed { - title(R.string.uh_oh) - content(R.string.play_store_billing_error) - positiveText(R.string.kau_ok) - } -} - -fun Activity.playStoreAlreadyPurchased(key: String) { - L.d("Play store already purchased $key") - materialDialogThemed { - title(R.string.play_already_purchased) - content(String.format(string(R.string.play_already_purchased_content), key)) - positiveText(R.string.reload) - dismissListener { - this@playStoreAlreadyPurchased.playRestart() - } - } -} - fun Activity.playStorePurchasedSuccessfully(key: String) { L.d("Play store purchased $key successfully") materialDialogThemed { title(R.string.play_thank_you) content(R.string.play_purchased_pro) positiveText(R.string.kau_ok) + neutralText(R.string.kau_rate) + onNeutral { _, _ -> startPlayStoreLink(R.string.play_store_package_id) } } } @@ -123,7 +93,7 @@ fun Activity.purchaseRestored() { L.d("Purchase restored") materialDialogThemed { title(R.string.play_thank_you) - content(R.string.play_purchased_pro) + content(R.string.purchases_restored_with_pro) positiveText(R.string.kau_ok) } } \ No newline at end of file diff --git a/app/src/main/res/values/strings_play_store.xml b/app/src/main/res/values/strings_play_store.xml index 8d37ee16..36ad6143 100644 --- a/app/src/main/res/values/strings_play_store.xml +++ b/app/src/main/res/values/strings_play_store.xml @@ -3,11 +3,7 @@ Found Frost Pro! Looks like you have frost pro! We\'ll reload the app so you can enjoy the awesome features! - Already Purchased - Looks like you\'ve already purchased %s. Enjoy! - Thank you for your support! Enjoy the pro version. - Something went wrong. Please try again later. - This is a pro feature, but this app doesn\'t seem to be installed from the Play Store. Please reinstall if this is an issue. + Thank you for your support! Enjoy all the features in Frost.\n\nIf you like this app, please consider rating it and supporting this open source project.\n\nIf you have comments, please do not hesitate to contact me! It seems like you are a pro user, but we couldn\'t find your purchasing info. If this error persists, please try clearing the Play Store cache and reinstalling the app. It seems like this app version can\'t purchase pro. Please reinstall from the play store if this is a persistent issue. \nIf you would like to donate without any additional features, you may do so through PayPal. diff --git a/gradle.properties b/gradle.properties index e247c30f..f2c7e0f3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,7 @@ MIN_SDK=21 TARGET_SDK=26 BUILD_TOOLS=26.0.1 -KAU=921ee0d +KAU=6411200 KOTLIN=1.1.4-3 COMMONS_TEXT=1.1 -- cgit v1.2.3