package Ġcom . mdi web ma . tiny debug utils Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Notification Manager Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Log Ċ import Ġjava . text . DateFormat Ċ import Ġjava . util . Date Ċ import Ġjava . util . Locale ĊĊ Ċ internal Ġobject ĠCrash Handler Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdefault Un caught Handler Ġ= ĠThread . getDefault Un caught ExceptionHandler () ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ ĠThread . setDefault Un caught ExceptionHandler Ġ{ Ġthread , Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠApplication Holder . application ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Text Ġ= ĠgetContent Text ( context , Ġthrowable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDebug Message Viewer Activity . create Intent ( context , Ġ" Cr ashed !", Ġcontent Text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpending Intent Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . getActivity ( context , Ġ 1 0 0 , Ġintent , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotification Ġ= ĠTiny Debug Utils . create Notification Builder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ stat _ clear ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title (" Cr ashed !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text ( content Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( pending Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Log . can Write Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Log . write Sync (" Cr ashed !", Ġcontent Text ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotification Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getSystem Service ( Activity . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager . notify ( content Text . hashCode (), Ġnotification ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Un caught Handler . unc a ught Exception ( thread , Ġthrowable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetContent Text ( context : ĠContext , Ġthrowable : ĠThrowable ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġ// ĠDate Ġtime ĊĠĠĠĠĠĠĠ Ġsb . append ( DateFormat . get DateTime Instance (). format ( Date ( System . currentTimeMillis ()))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ("\ n ") ĊĠĠĠĠĠĠĠ Ġ// Ġapp Ġinfo ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append (" App : Ġ"). append ( context . packageName ). append ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( Utils . getVersion Build Info (). replace ('\ t ', Ġ'\ n ')). append ("\ n ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġphone Ġinfo ĊĠĠĠĠĠĠĠ Ġsb . append (" OS ĠVersion : Ġ"). append ( Build . VERSION . SDK _ INT ). append (", Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" OS ĠLocale : Ġ"). append ( Locale . getDefault (). toString ()). append ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" Device : Ġ"). append ( Build . MAN U FACT UR ER ). append ("/") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( Build . MODEL ). append ("/") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( Build . DISPLAY ). append ("\ n \ n ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsb . toString () Ġ+ ĠLog . get StackTrace String ( throwable ) ĊĠĠĠ Ġ} Ċ } ĊĊ