package Ġcom . eric yl . utils . util Ċ Ċ import Ġandroid . util . Log Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ eric yl Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT > ĠT . show Debug Log ( message : ĠAny ?): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġshow Log ( message , ĠLog . DEBUG ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠT . show Error Log ( message : ĠAny ?): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġshow Log ( message , ĠLog . ERROR ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠT . show Verbose Log ( message : ĠAny ?): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġshow Log ( message , ĠLog . VERBOSE ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠT . show Assert Log ( message : ĠAny ?): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġshow Log ( message , ĠLog . ASSERT ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠT . show Info Log ( message : ĠAny ?): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġshow Log ( message , ĠLog . INFO ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠT . show Warn Log ( message : ĠAny ?): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġshow Log ( message , ĠLog . WARN ) Ċ } Ċ Ċ // It 's Ġa Ġjo ke Ċ inline Ġfun Ġ< re ified ĠT > ĠT . show Log ( message : ĠAny ? Ġ= Ġ" Di Ġlin ĠDi Ġlin . Ġthe Ġmessage Ġis Ġ$ this ", Ġlevel : ĠInt Ġ= ĠLog . DEBUG ): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġ:: log . getLog ( T :: class . java . simple Name , Ġlevel )( message ) Ċ } Ċ Ċ fun Ġ< P 1 , ĠP 2 , ĠP 3 , ĠR > ĠFunction 3 < P 1 , ĠP 2 , ĠP 3 , ĠR >. getLog ( p 1 : ĠP 1 , Ġp 2 : ĠP 2 ) Ġ= Ġfun ( p 3 : ĠP 3 ) Ġ= Ġthis ( p 1 , Ġp 2 , Ġp 3 ) Ċ Ċ fun Ġlog ( tag : ĠString , Ġlevel : ĠInt , Ġmessage : ĠAny ?): ĠInt ? Ġ{ ĊĊĠĠĠ Ġreturn Ġwhen Ġ( level ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . DEBUG Ġ-> Ġshow Log ( message , Ġtag , ĠLog :: d , ĠLog :: d ) ĊĠĠĠĠĠĠĠ ĠLog . ERROR Ġ-> Ġshow Log ( message , Ġtag , ĠLog :: e , ĠLog :: e ) ĊĠĠĠĠĠĠĠ ĠLog . VERBOSE Ġ-> Ġshow Log ( message , Ġtag , ĠLog :: v , ĠLog :: v ) ĊĠĠĠĠĠĠĠ ĠLog . ASSERT Ġ-> Ġshow Log ( message , Ġtag , ĠLog :: w tf , ĠLog :: w tf ) ĊĠĠĠĠĠĠĠ ĠLog . INFO Ġ-> Ġshow Log ( message , Ġtag , ĠLog :: i , ĠLog :: i ) ĊĠĠĠĠĠĠĠ ĠLog . WARN Ġ-> Ġshow Log ( message , Ġtag , ĠLog :: w , ĠLog :: w ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġshow Message ( message : ĠAny ?): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( message ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġmessage ĊĠĠĠĠĠĠĠ Ġis ĠThrowable Ġ-> Ġ"${ message . message }" ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"$ message " ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġshow Log ( message : ĠAny ?, Ġtag : ĠString , Ġaction 1 : Ġ( tag : ĠString , Ġmessage : ĠString , Ġtr : ĠThrowable ) Ġ-> ĠInt ?, Ġaction 2 : Ġ( tag : ĠString , Ġmessage : ĠString ) Ġ-> ĠInt ?): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( message Ġis ĠThrowable ) Ġaction 1 . invoke ( tag , Ġshow Message ( message ), Ġmessage ) Ġelse Ġaction 2 . invoke ( tag , Ġshow Message ( message )) Ċ }