package Ġdev . pth omain . android . boilerplate . core . utils . log Ċ Ċ import Ġandroid . util . Log Ċ Ċ internal Ġclass ĠSimple Printer ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠpackageName : ĠString Ċ ) Ġ: ĠPrinter Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcan Print ( className : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! className . contains ( Simple Logger :: class . java .` package ` !!. name ) ĊĊĠĠĠ Ġoverride Ġfun Ġprint ( priority : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget ClassName : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( tag ?. let Ġ{ Ġcan Print ( it ) Ġ} Ġ!= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . println ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpriority , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclean Up Tag ( tag ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . trim () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclean Up Tag ( tag : ĠString ?) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag ?. replace ("$ packageName .", Ġ"") ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġit . length Ġ- ĠMAX _ TAG _ LENGTH ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtruncated Ġ= Ġif Ġ( start Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . substring ( start , Ġit . length ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . contains (". ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . substring ( it . indexOf (".") Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġit ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tr uncated . contains (". ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtruncated . substring ( 0 , Ġtruncated . lastIndexOf (". ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġtruncated ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ private Ġconst Ġval ĠMAX _ TAG _ LENGTH Ġ= Ġ 8 8 ĊĊ