summaryrefslogtreecommitdiff
path: root/src/clojure/io/cons/carddav_sync/authentication_service.clj
blob: 029af48c8bdae6e20c35e77d5a900935ee827af9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
(ns io.cons.carddav_sync.authentication_service
  (:use io.cons.carddav_sync.log)
  (:require io.cons.carddav_sync.authenticator)
  (:import io.cons.carddav_sync.authenticator)
  (:gen-class
   :extends android.app.Service
   :exposes-methods {onCreate superOnCreate
                     onDestroy superOnDestroy}
   :state state
   :init init))

(defn -init
  []
  [[] (atom nil)])

(defn -onCreate
  [this]
  (.superOnCreate this)
  (log-i "Authentication Service created")
  (swap! (.state this) #(when-not % (authenticator. this))))

(defn -onDestroy
  [this]
  (.superOnDestroy this)
  (log-i "Authentication Service destroyed"))

(defn -onBind
  [this intent]
  (log-i "Authentication onBind")
  (.getIBinder @(.state this)))