From 8ddc3e1512a5add02a7391e92320d3babca85fc8 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Mon, 3 Jul 2017 22:15:04 -0700 Subject: Create showcase prefs --- app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt | 2 ++ .../kotlin/com/pitchedapps/frost/WebOverlayActivity.kt | 4 ++-- app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt | 14 +++++++++----- .../main/kotlin/com/pitchedapps/frost/utils/Showcase.kt | 16 ++++++++++++++++ 4 files changed, 29 insertions(+), 7 deletions(-) create mode 100644 app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt (limited to 'app/src/main/kotlin/com') diff --git a/app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt b/app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt index 8d38f2f9..cba6b878 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/FrostApp.kt @@ -13,6 +13,7 @@ import com.mikepenz.materialdrawer.util.DrawerImageLoader import com.pitchedapps.frost.facebook.FbCookie import com.pitchedapps.frost.utils.CrashReportingTree import com.pitchedapps.frost.utils.Prefs +import com.pitchedapps.frost.utils.Showcase import com.raizlabs.android.dbflow.config.FlowConfig import com.raizlabs.android.dbflow.config.FlowManager import io.fabric.sdk.android.Fabric @@ -35,6 +36,7 @@ class FrostApp : Application() { override fun onCreate() { FlowManager.init(FlowConfig.Builder(this).build()) Prefs.initialize(this, "${BuildConfig.APPLICATION_ID}.prefs") + Showcase.initialize(this, "${BuildConfig.APPLICATION_ID}.showcase") // if (LeakCanary.isInAnalyzerProcess(this)) return // refWatcher = LeakCanary.install(this) if (BuildConfig.DEBUG) { diff --git a/app/src/main/kotlin/com/pitchedapps/frost/WebOverlayActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/WebOverlayActivity.kt index 2bd6ba69..dd7f60b7 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/WebOverlayActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/WebOverlayActivity.kt @@ -54,8 +54,8 @@ open class WebOverlayActivity : AppCompatActivity() { frostWeb.web.addTitleListener({ toolbar.title = it }) if (userId != Prefs.userId) FbCookie.switchUser(userId) { frostWeb.web.loadBaseUrl() } else frostWeb.web.loadBaseUrl() - if (Prefs.firstWebOverlay) { - Prefs.firstWebOverlay = false + if (Showcase.firstWebOverlay) { + Showcase.firstWebOverlay = false coordinator.frostSnackbar(R.string.web_overlay_swipe_hint) { duration = Snackbar.LENGTH_INDEFINITE setAction(R.string.kau_got_it) { _ -> this.dismiss() } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt index 5f0bdc41..7eb6bae9 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt @@ -83,9 +83,6 @@ object Prefs : KPref() { var notificationKeywords: StringSet by kpref("notification_keywords", mutableSetOf()) - //check if this is the first time launching the web overlay; show snackbar if true - var firstWebOverlay: Boolean by kpref("first_web_overlay", true) - /** * Cache like value to determine if user has or had pro * In most cases, [com.pitchedapps.frost.utils.iab.IS_FROST_PRO] should be looked at instead @@ -96,9 +93,16 @@ object Prefs : KPref() { var debugPro: Boolean by kpref("debug_pro", false) - var searchBar: Boolean by kpref("search_bar", false) - var verboseLogging: Boolean by kpref("verbose_logging", false) var analytics: Boolean by kpref("analytics", true) + + var experimentalDefault:Boolean by kpref("experimental_by_default", false) + + /* + * Experimental features must be listed below so the default is initialized + */ + + var searchBar: Boolean by kpref("search_bar", experimentalDefault) + } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt new file mode 100644 index 00000000..1429dc1a --- /dev/null +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt @@ -0,0 +1,16 @@ +package com.pitchedapps.frost.utils + +import ca.allanwang.kau.kpref.KPref +import ca.allanwang.kau.kpref.kpref + +/** + * Created by Allan Wang on 2017-07-03. + * + * Showcase prefs that offer one time helpers to guide new users + */ +object Showcase : KPref() { + + //check if this is the first time launching the web overlay; show snackbar if true + var firstWebOverlay: Boolean by kpref("first_web_overlay", true) +} + -- cgit v1.2.3