package Ġcom . y az ant ar ifi . android . reporter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . app . Notification Manager Ċ Ċ import Ġandroid . app . Notification Channel Ċ Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Factory Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġandroidx . core . app . Notification Manager Compat Ċ import Ġandroidx . core . graphics . drawable . Icon Compat Ċ import Ġcom . y az ant ar ifi . android . reporter . screens . Sh ake Reporter Screen Ċ import Ġjava . lang . Exception Ċ import Ġkotlin . random . Random ĊĊ Ċ /** Ċ Ġ* ĠNotifications ĠInformation ĠUsed Ġto ĠCreate ĠNotifications Ġfor ĠLibrary Ċ Ġ* ĠThis ĠNotification ĠChannel Ġis ĠUsed Ġto ĠDisplay ĠNotifications Ġin ĠAny ĠApplication Ċ Ġ* ĠUsed ĠOne ĠTime ĠOnce ĠLibrary ĠInitialized ĠThen ĠWill ĠUse Ġit ĠOnce ĠException ĠTrigger ed Ċ Ġ*/ Ċ object ĠReport er Notifications Ġ{ ĊĊĠĠĠ Ġprivate Ġconst Ġval ĠNOT IFICATION _ NAME Ġ= Ġ" Reporter ĠNotifications " ĊĠĠĠ Ġprivate Ġconst Ġval ĠNOT IFICATION _ ID Ġ= Ġ" Reporter Notifications Channel " ĊĠĠĠ Ġprivate Ġconst Ġval ĠNOT IFICATION _ DESCRIPTION Ġ= Ġ""" ĊĠĠĠĠĠĠĠ ĠSh ake ĠReport er ĠAndroid ĠLibrary ĠUsed ĠTo ĠSend ĠReports ĠDuring ĠDevelopment ĠPhase ĊĠĠĠĠĠĠĠ ĠIn ĠOrder ĠTo ĠShow ĠNotifications ĠOn ĠUn ĠCatch ĠExceptions Ġon ĠThread ĠClass ĊĠĠĠĠĠĠĠ ĠOn ĠNotification ĠClick Ġon Ġit ĠWill ĠShow ĠYou ĠThe ĠHistory Ġof ĠExceptions ĊĠĠĠĠĠĠĠ Ġand ĠOk Http ĠRequests ĠBy ĠApply ing ĠInter ceptor ĊĠĠĠ Ġ""" ĊĊĠĠĠ Ġfun Ġcreate Notification Channel ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimportance Ġ= ĠNotification Manager . IMPORT ANCE _ HIGH ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchannel Ġ= ĠNotification Channel ( NOTIFICATION _ ID , ĠNOT IFICATION _ NAME , Ġimportance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel . description Ġ= ĠNOT IFICATION _ DESCRIPTION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getSystem Service ( Notification Manager :: class . java )?. create Notification Channel ( channel ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSh ake Reporter . print Logs (" Notification ĠChannel ĠCreated Ġ... ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Notification ( title : ĠString , Ġmessage : ĠString , Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠSh ake Reporter Screen :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK Ġor ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TASK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpending Intent : ĠPending Intent Ġ= ĠPending Intent . getActivity ( context , Ġ 0 , Ġintent , Ġ 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠNotification Compat . Builder ( context , ĠNOT IFICATION _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Large Icon ( Bitmap Factory . decode Resource ( context . resources Ġ, ĠR . drawable . large _ logo )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setStyle ( Notification Compat . Big TextStyle (). big Text ( message )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( pending Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification Compat . PRIORITY _ HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Category ( Notification Compat . CATEGORY _ ERROR ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Small Icon ( Icon Compat . create With Resource ( context , ĠR . drawable . small _ logo )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( Notification Manager Compat . from ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify ( get Notification Id (), Ġbuilder . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠSh ake Reporter . print Logs (" Notification ĠDisplay ed Ġ... ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSh ake Reporter . print Logs ( ex ?. message Ġ?: Ġ"", Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Notification Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRandom . nextInt ( 1 0 0 0 ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ