package Ġde . born hold tle e . base project . utils Ċ Ċ import Ġandroid . util . Log Ċ Ċ import Ġde . born hold tle e . base project . Build Config Ċ Ċ object ĠLogger Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġis Allowed To Log : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠBuild Config . DEBUG ĊĊĠĠĠ Ġprivate Ġval Ġcalling Class : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstack Trace Elements Ġ= ĠThread . currentThread (). stack Trace ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġstack Trace Elements . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( stack Trace Elements [ i ]. className Ġ== ĠLogger :: class . java . canonical Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsplit Ġ= Ġstack Trace Elements [ i Ġ+ Ġ 2 ]. className . split ("\\ .". to Regex ()). drop Last While Ġ{ Ġit . isEmpty () Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠclassName Ġ= Ġsplit [ split . size Ġ- Ġ 1 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( className . contains ("$ ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠclassName Ġ= ĠclassName . split ("\\ $ ". to Regex ()). drop Last While Ġ{ Ġit . isEmpty () Ġ}. to Typed Array ()[ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"(" Ġ+ ĠclassName Ġ+ Ġ". java :" Ġ+ Ġstack Trace Elements [ i Ġ+ Ġ 2 ]. line Number Ġ+ Ġ")" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogger :: class . java . simple Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLogger :: class . java . simple Name ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġerror ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Allowed To Log ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( calling Class , Ġmessage ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdebug ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Allowed To Log ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( calling Class , Ġmessage ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinfo ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Allowed To Log ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( calling Class , Ġmessage ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġverbose ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Allowed To Log ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . v ( calling Class , Ġmessage ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwarn ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Allowed To Log ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( calling Class , Ġmessage ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġw tf ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Allowed To Log ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w tf ( calling Class , Ġmessage ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }