IAPing.
This commit is contained in:
34
desktop/src-common/advent/iap.clj
Normal file
34
desktop/src-common/advent/iap.clj
Normal file
@@ -0,0 +1,34 @@
|
||||
(ns advent.iap
|
||||
(:import [com.badlogic.gdx Gdx Application])
|
||||
(:require [clojure.core.async :as a]
|
||||
[advent.utils :as utils]))
|
||||
|
||||
(def purchase-chan (a/chan 1))
|
||||
(def has-purchased? (atom false))
|
||||
(def can-purchase? (atom false))
|
||||
|
||||
(defn set-purchase-pref [val]
|
||||
(println "setting preference purchased:" val)
|
||||
(let [prefs (.getPreferences (Gdx/app) "purchases")]
|
||||
(.putBoolean prefs "has-purchased?" val)
|
||||
(.flush prefs))
|
||||
(reset! has-purchased? val)
|
||||
(a/go (a/>! purchase-chan val)))
|
||||
|
||||
(defn check-purchase-pref []
|
||||
(let [prefs (.getPreferences (Gdx/app) "purchases")]
|
||||
(if (.contains prefs "has-purchased?")
|
||||
(.getBoolean prefs "has-purchased?")
|
||||
false)))
|
||||
|
||||
(defn use-pref []
|
||||
(swap! has-purchased? #(or % (check-purchase-pref)))
|
||||
(println "preferences purchased:" @has-purchased?))
|
||||
|
||||
(defn start-purchase []
|
||||
(utils/platformify
|
||||
(do
|
||||
(require '[advent.ios])
|
||||
(@(resolve 'advent.ios/start-purchase)) )
|
||||
(.triggerPurchase (Gdx/app))
|
||||
(set-purchase-pref true)))
|
||||
Reference in New Issue
Block a user