package Ġpy x is . uz uki . live . rich util sk t . module . crash . item Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Build Ċ import Ġpy x is . uz uki . live . rich util sk t . module . crash . Crash Config Ċ import Ġjava . io . PrintWriter Ċ import Ġjava . io . Serializable Ċ import Ġjava . io . String Writer Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠRich Utils Kt Ċ Ġ* ĠClass : ĠCrash Config Ċ Ġ* ĠCreated Ġby ĠPy x is Ġon Ġ 2 0 1 7 - 1 1 - 0 6 . Ċ Ġ* Ċ Ġ* ĠDescription : Ċ Ġ*/ Ċ Ċ class ĠRich Crash Model Ġ: ĠSerializable , ĠClone able Ġ{ ĊĠĠĠ Ġvar ĠpackageName : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġversion Str : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġmodel Str : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġproduct Str : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġdevice Str : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġsdk Str : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġsdk Num : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġmanufacturer Str : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġtime Str : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġmessage : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġlocalized Message : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġvar Ġstack Trace : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġfun Ġset Throwable ( ex : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠString Writer () ĊĠĠĠĠĠĠĠ Ġval Ġprint Writer Ġ= ĠPrintWriter ( result ) ĊĠĠĠĠĠĠĠ Ġex . printStackTrace ( print Writer ) ĊĊĠĠĠĠĠĠĠ Ġprint Writer . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcause Ġ= Ġex . cause ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcause ?. printStackTrace ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . message Ġ= Ġex . message ĊĠĠĠĠĠĠĠ Ġthis . localized Message Ġ= Ġex . localized Message ĊĠĠĠĠĠĠĠ Ġthis . stack Trace Ġ= Ġresult . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset DeviceInfo ( build : ĠBuild ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . model Str Ġ= ĠBuild . MODEL ĊĠĠĠĠĠĠĠ Ġthis . product Str Ġ= ĠBuild . PRODUCT ĊĠĠĠĠĠĠĠ Ġthis . device Str Ġ= ĠBuild . DEVICE ĊĠĠĠĠĠĠĠ Ġthis . sdk Str Ġ= ĠBuild . VERSION . SDK ĊĠĠĠĠĠĠĠ Ġthis . sdk Num Ġ= ĠBuild . VERSION . SDK _ INT ĊĠĠĠĠĠĠĠ Ġthis . manufacturer Str Ġ= ĠBuild . MAN U FACT UR ER ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Config ( config : ĠCrash Config ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . packageName Ġ= Ġconfig . packageName ĊĠĠĠĠĠĠĠ Ġthis . version Str Ġ= Ġconfig . version Str ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") ĊĠĠĠ Ġfun Ġset Time ( date : ĠDate , Ġcrash Config : ĠCrash Config ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdateFormat Ġ= ĠSimpleDateFormat ( crash Config . time Format ) ĊĠĠĠĠĠĠĠ Ġthis . time Str Ġ= ĠdateFormat . format ( date ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠRich Crash Model ĊĊĠĠĠĠĠĠĠ Ġif Ġ( packageName Ġ!= Ġother . packageName ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( version Str Ġ!= Ġother . version Str ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( model Str Ġ!= Ġother . model Str ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( product Str Ġ!= Ġother . product Str ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( device Str Ġ!= Ġother . device Str ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( sdk Str Ġ!= Ġother . sdk Str ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( sdk Num Ġ!= Ġother . sdk Num ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( manufacturer Str Ġ!= Ġother . manufacturer Str ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( time Str Ġ!= Ġother . time Str ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( message Ġ!= Ġother . message ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( localized Message Ġ!= Ġother . localized Message ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( stack Trace Ġ!= Ġother . stack Trace ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= ĠpackageName ?. hashCode () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( version Str ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( model Str ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( product Str ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( device Str ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( sdk Str ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġsdk Num ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( manufacturer Str ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( time Str ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( message ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( localized Message ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( stack Trace ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Rich Crash Model ( packageName =$ packageName , Ġversion Str =$ version Str , Ġmodel Str =$ model Str , Ġproduct Str =$ product Str , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" device Str =$ device Str , Ġsdk Str =$ sdk Str , Ġsdk Num =$ sdk Num , Ġmanufacturer Str =$ manufacturer Str , Ġtime Str =$ time Str , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" message =$ message , Ġlocalized Message =$ localized Message , Ġstack Trace =$ stack Trace )" ĊĠĠĠ Ġ} Ċ Ċ } Ċ