Files
gitea-docker/desktop/src-common/advent/iap.clj
Bryce Covert 297214896f shitty tweaks.
2019-12-15 15:16:46 -08:00

35 lines
1.0 KiB
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) (= "desktop" (System/getProperty "platform"))))
(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)))