package Ġcom . sp art an cookie . her mes logger . share Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġcom . sp art an cookie . her mes logger . core . Her mes Handler Ċ import Ġcom . sp art an cookie . her mes logger . core . EventType Ċ import Ġcom . sp art an cookie . her mes logger . models . EventData Holder Ċ import Ġcom . sp art an cookie . her mes logger . models . get EventType Number Ċ import Ġcom . sp art an cookie . her mes logger . utils . build Info Content Only Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠShare Ġlogic Ġthat Ġis Ġindependent Ġof Ġthe ĠAndroid Ġversion Ċ Ġ*/ Ċ internal Ġobject ĠShare Helper Common Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsh arable : ĠI File Sh arable Ġ= Ġsdk 2 9 And Up Ġ{ ĠShare Helper Sdk 2 9 Up Ġ} Ġ?: ĠShare Helper Sdk 2 8 down ĊĊĠĠĠ Ġprivate Ġval Ġheader Content ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" Her mes Ġlogger Ġstack Ġdump Ġcaptured Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" at Ġ${ SimpleDateFormat ( Share Constants . HEADER _ DATE _ FORMAT , ĠLocale . getDefault ()). format ( Date ()) }" ĊĊĠĠĠ Ġprivate Ġval Ġlog Count Content ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" Log Ġcount : ĠSuccess :${ info Holder . getNumberOf Log sBy Type ( EventType . Success )} Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Info :${ info Holder . getNumberOf Log sBy Type ( EventType . Info )} Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Warning :${ info Holder . getNumberOf Log sBy Type ( EventType . Warning )} Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Error :${ info Holder . getNumberOf Log sBy Type ( EventType . Error )} Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Debug :${ info Holder . getNumberOf Log sBy Type ( EventType . Debug )}" ĊĊĠĠĠ Ġprivate Ġval Ġinfo Holder Ġ= ĠHer mes Handler . info Holder ĊĊĠĠĠ Ġprivate Ġval Ġcreation DateFormat Ġ= ĠSimpleDateFormat (" MM - dd ĠHH : mm : ss . SS S ", ĠLocale . getDefault ()) ĊĊĠĠĠ Ġfun Ġenable Share Feature ( context : ĠContext ) Ġ= Ġsh arable . initialize Feature ( context ) ĊĊĠĠĠ Ġfun Ġshare Whole Log Stack ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsh arable . share Log Dump ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Dump Log Content (): ĠString Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠ Ġappend ("$ header Content \ n ") ĊĠĠĠĠĠĠĠ Ġappend ("$ log Count Content \ n ") ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( event Ġin Ġinfo Holder . event List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("\ n ============== \ n ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("${ event . type . name . uppercase ()} -${ event . get EventType Number ()} Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" at Ġ${ creation DateFormat . format ( event . creation Date )} ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( event . tags . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("\ n \ n Tags : Ġ${ event . tags }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("\ n Short ĠMessage :${ event . message }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . description ?. let Ġ{ Ġappend ("\ n Extra ĠInformation :$ it ") Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . throwable ?. let Ġ{ Ġappend ("\ n \ n Throwable :\ n ${ it . stack Trace ToString () }") Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("\ n ============== \ n ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġappend ( Share Constants . FO OTER ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShare Ġa Ġsingle Ġlog ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshare Log ( context : ĠContext , Ġevent : ĠEvent Data Holder ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ SEND ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠShare Constants . PLAIN _ TEXT _ INT ENT _ TYPE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ SUBJECT , Ġ"${ event . type } Ġlog Ġcaptured Ġat Ġ${ event . creation Date }- Ġ${ event . message }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ TEXT , Ġbuild Info Content Only ( event )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ( context Ġas ? ĠActivity )?. run Ġ{ ĠstartActivity ( Intent . create Chooser ( intent , Ġ" Share Ġlog ")) Ġ} ĊĠĠĠ Ġ} Ċ Ċ }