package Ġcom . github . pe ep Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġcom . github . pe ep . App . Companion . prefs Ċ import Ġcom . github . pe ep . DB . User DB Ċ Ċ import Ġcom . github . pe ep . databinding . Activity Setting Binding Ċ import Ġcom . github . pe ep . decorator . Alert Design Ċ import Ġcom . pe ep . github ap it est . github p api . ApiClient Ċ import Ġcom . pe ep . github ap it est . github p api . Github Interface Ċ import Ġcom . pe ep . github ap it est . model . User Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ Ċ class ĠSetting Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġm Binding : ĠActivity Setting Binding ĊĠĠĠ Ġ// private Ġvar Ġuser Db Ġ: ĠUser DB ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġm Binding Ġ= ĠActivity Setting Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( m Binding . root ) ĊĊĠĠĠĠĠĠĠ Ġ// user Db Ġ= ĠUser DB . getInstance ( this ) Ċ Ċ // ĠĠĠĠĠĠĠ Ġval Ġremove Runnable Ġ= ĠRunnable { Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġuser Db ?. user Dao ()?. delete All () Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ// ìĤ¬ ìļ© ìŀĲ ĠíĶĦë¡ľ íķ Ħ , ĠìĿ´ë¦Ħ Ġê°Ģ ìł¸ ìĺ¤ ê¸° ĊĠĠĠĠĠĠĠ ĠgetUser () ĊĊĠĠĠĠĠĠĠ Ġ// ë¡ľ ê·¸ ìķĦ ìĽ ĥ ĊĠĠĠĠĠĠĠ Ġm Binding . setting Logout Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Setting Popup (" ë¡ľ ê·¸ ìķĦ ìĽ ĥ Ġíķĺ ìĭľ ê²ł ìĬµ ëĭĪ ê¹Į ?") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ëłĪ íı¬ ì§ ĵ íĨł ë¦¬ Ġê ¶ Į íķľ Ġë³Ģê²½ ĊĠĠĠĠĠĠĠ Ġm Binding . setting Repo Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Setting Popup (" ê ¶ Į íķľ ìĿĦ Ġë³Ģê²½ íķĺ ìĭľ ê²ł ìĬµ ëĭĪ ê¹Į ?\ n ë³Ģ ê²½ Ġìĭľ , Ġìŀ¬ ë¡ľ ê·¸ ìĿ¸ ìĿ´ ĠíķĦìļĶ íķ©ëĭĪëĭ¤ .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġë³ ĳ ìķĦ ë¦¬ Ġì ´Ī ê¸° íĻĶ ĊĠĠĠĠĠĠĠ Ġm Binding . setting Pe ep Init Btn . setOnClickListener Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġremove Thread Ġ= ĠThread ( remove Runnable ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġremove Thread . start () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetUser (){ ĊĠĠĠĠĠĠĠ Ġvar ĠGithub Service = ĠApi Client . client . create ( Github Interface :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġcall = Github Service . getUser () ĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object : ĠCallback < User > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < User >, Ġresponse : ĠResponse < User >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . code () Ġ== Ġ 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser = response . body () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get (). load ( user ?. avatar _ url ). into ( m Binding . setting Profile Iv ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . setting Username . text Ġ= Ġuser ?. login ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" err ", response . code (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < User >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" error "," error ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġlogout (){ ĊĠĠĠĠĠĠĠ ĠApp . prefs . remove (" token ") ĊĠĠĠĠĠĠĠ Ġandroid . webkit . Cookie Manager . getInstance (). removeAll Cookie () ĊĠĠĠĠĠĠĠ ĠApp . prefs . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Setting Popup ( string Ġ: ĠString ){ ĊĠĠĠĠĠĠĠ ĠAlert Design ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle (" ê ¶ Į íķľ Ġë³Ģê²½ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( string ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" ìĺ Ī ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogout () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġintent = Intent ( this , Home Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish Affinity () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button (" ì · ¨ ìĨĮ "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }