Files
gitea-docker/desktop/src-common/advent/iap.clj
Bryce Covert 850a0a945d IAPing.
2017-09-25 11:28:48 -07:00

35 lines
1008 B
Clojure

(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)))