package Ġcom . ch in azy jr . github application . utils Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Fragment Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . speech . Recognizer Intent Ċ import Ġandroid . support . v 4 . app . Activity Compat . startActivity For Result Ċ import Ġandroid . support . v 4 . content . Context Compat . startActivity Ċ import Ġandroid . util . Log Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġcom . ch in azy jr . github application . R Ċ import Ġcom . ch in azy jr . github application . base . App Ċ import Ġcom . ch in azy jr . github application . base . App . Companion . context Ċ import Ġcom . ch in azy jr . my library . base . Activity Collector Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġorg . jetbrains . annotations . NotNull Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġli u zip eng Ġon Ġ 2 0 1 7 / 2 / 1 5 . Ċ Ġ*/ Ċ // æī©å±ķ å±ŀæĢ§ Ċ val ĠView . ctx : ĠContext ĊĠĠĠ Ġget () Ġ= Ġcontext Ċ Ċ fun ĠAny . log ( msg : ĠString ) Ġ{ ĊĠĠĠ ĠLog . d ( this . java Class . simple Name , Ġmsg ) Ċ } Ċ Ċ /** Ċ Ġ* Ġ éļĲèĹı éĶĻè¯¯ åĽ¾çīĩ Ċ Ġ*/ Ċ fun ĠFragment . hide Error Img (@ NotNull Ġview Group : ĠViewGroup ) Ġ{ ĊĠĠĠ Ġview Group . visibility Ġ= ĠView . GONE Ċ } Ċ Ċ /** Ċ Ġ* Ġ éļĲèĹı éĶĻè¯¯ åĽ¾çīĩ Ċ Ġ*/ Ċ fun ĠActivity . hide Error Img (@ NotNull Ġview Group : ĠViewGroup ) Ġ{ ĊĠĠĠ Ġview Group . visibility Ġ= ĠView . GONE Ċ } ĊĊ Ċ inline Ġfun ĠContext . has NavigationBar ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġ// éĢļè¿ĩ åĪ¤æĸŃ è®¾å¤ĩ æĺ¯åĲ¦ æľī è¿ĶåĽŀ éĶ® ãĢģ èıľåįķ éĶ® ( ä¸įæĺ¯ èĻļæĭŁ éĶ® , æĺ¯ æīĭæľº å±ı å¹ķ å¤ĸ çļĦ æĮī éĶ® ) æĿ¥ ç¡®å®ļ æĺ¯åĲ¦ æľī navigation Ġbar ĊĠĠĠ Ġval Ġhas Menu Key Ġ= ĠView Configuration . get ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. has Permanent Menu Key () ĊĠĠĠ Ġval Ġhas Back Key Ġ= ĠKey Character Map ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. device HasKey ( KeyEvent . KEYCODE _ BACK ) ĊĊĠĠĠ Ġif Ġ(! has Menu Key Ġ&& Ġ! has Back Key ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun ĠAny . support L ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ fun ĠInt . sp 2 px (): ĠFloat Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ SP , Ġthis . toFloat (), ĠApp . instance . resources . display Metrics ) Ċ fun ĠInt . dp 2 px (): ĠFloat Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ DIP , Ġthis . toFloat (), ĠApp . instance . resources . display Metrics ) Ċ fun ĠFloat . dp 2 px (): ĠFloat Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ DIP , Ġthis , ĠApp . instance . resources . display Metrics ) Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠActivity > ĠActivity . new Intent ( action : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠT :: class . java ) ĊĠĠĠ Ġintent . action Ġ= Ġaction ĊĠĠĠ ĠstartActivity ( intent ) Ċ } Ċ Ċ fun Ġ< T > ĠObservable < T >. apply Schedulers (): ĠObservable < T > Ġ{ ĊĠĠĠ Ġreturn Ġsubscribe On ( Schedulers . io ()). unsubscribe On ( Schedulers . io ()). observe On ( Android Schedulers . main Thread ()) Ċ } Ċ Ċ /** Ċ Ġ* Ġå½ĵåīį ç½ĳç»ľ æĺ¯åĲ¦ åı¯çĶ¨ Ċ Ġ*/ Ċ inline Ġfun ĠAny . net Available ( block : Ġ( a : ĠBoolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( Utils . is Network Available ( App . instance )) Ġblock ( true ) Ġelse Ġblock ( false ) Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ åŃĹç¬¦ä¸² Ċ Ġ*/ Ċ fun ĠContext . obtain String ( res Id : ĠInt ): ĠString Ġ= Ġthis . resources . getString ( res Id ) Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ é¢ľèī² Ċ Ġ*/ Ċ fun ĠContext . obtain Color ( res Id : ĠInt ): ĠInt Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠ Ġthis . resources . getColor ( res Id , Ġnull ) Ċ } Ġelse Ġ{ ĊĠĠĠ Ġthis . resources . getColor ( res Id ) Ċ } Ċ Ċ var Ġexit Time : ĠLong Ġ= Ġ 0 Ċ Ċ fun Ġclick Back ( keyCode : ĠInt , Ġevent : ĠKeyEvent ?): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( keyCode Ġ== ĠKeyEvent . KEYCODE _ BACK Ġ&& Ġevent ?. action Ġ== ĠKeyEvent . ACTION _ DOWN ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( System . currentTimeMillis () Ġ- Ġexit Time Ġ> Ġ 2 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" åĨį æĮī ä¸Ģæ¬¡ éĢĢåĩº ç¨ĭåºı ", ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexit Time Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Collector . finish All () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . exit ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ Ċ fun Ġtoast ( str : ĠString ) Ġ{ ĊĠĠĠ ĠToast . makeText ( context , Ġstr , ĠToast . LENGTH _ SHORT ) Ċ } Ċ Ċ fun ĠActivity . open Activity ( intent : ĠIntent ) Ġ{ ĊĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġoverride Pending Transition ( R . anim . in _ anim , ĠR . anim . out _ anim ) Ċ } Ċ Ċ fun ĠActivity . close Activity () Ġ{ ĊĠĠĠ Ġfinish () ĊĠĠĠ Ġoverride Pending Transition ( R . anim . in _ anim _ left , ĠR . anim . out _ anim _ right ) Ċ }