first stab at android.
This commit is contained in:
22
android/src/clojure/advent/android.clj
Normal file
22
android/src/clojure/advent/android.clj
Normal file
@@ -0,0 +1,22 @@
|
||||
(ns advent.android
|
||||
(:import [com.android.billingclient.api PurchasesUpdatedListener PurchaseHistoryResponseListener Purchase$PurchasesResult])
|
||||
(:require [clojure.core.async :as a]))
|
||||
|
||||
(def purchase-chan (a/chan))
|
||||
|
||||
(def listener
|
||||
(reify PurchasesUpdatedListener
|
||||
(onPurchasesUpdated [this response-code purchases]
|
||||
(println response-code purchases)
|
||||
(let [result (and purchases (> (.size purchases) 0))]
|
||||
(reset! @(resolve 'advent.core/has-purchased?) (if result true false))
|
||||
(a/go (a/>! purchase-chan (if result true false)))))) )
|
||||
|
||||
(def history-listener
|
||||
(reify PurchaseHistoryResponseListener
|
||||
(onPurchaseHistoryResponse [this purchases-result]
|
||||
(println "got history")
|
||||
(let [result (and purchases-result (.getPurchasesList purchases-result) (> (.size (.getPurchasesList purchases-result)) 0))]
|
||||
(reset! @(resolve 'advent.core/has-purchased?) (if result true false))
|
||||
(a/go (a/>! purchase-chan (if result true false)))))) )
|
||||
|
||||
Reference in New Issue
Block a user