package Ġorg . cc ci . g to . android . common . leak can ary Ċ Ċ import Ġcom . crash ly t ics . android . Crash ly t ics Ċ import Ġleak can ary . Default On Heap Analy zed Listener Ċ import Ġleak can ary . On Heap Analy zed Listener Ċ import Ġorg . cc ci . g to . android . common . leak can ary . util . as Fake Exception Ċ import Ġsh ark . Heap Analysis Ċ import Ġsh ark . Heap Analysis Success Ċ Ċ private Ġconst Ġval ĠLOG _ LIMIT Ġ= Ġ 6 4 Ġ* Ġ 1 0 2 4 Ċ Ċ class ĠCrash ly t ics On Heap Analy zed Listener Ġ: ĠOn Heap Analy zed Listener Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdefault Listener Ġ= ĠDefault On Heap Analy zed Listener . create () ĊĊĠĠĠ Ġoverride Ġfun Ġon Heap Analy zed ( heap Analysis : ĠHeap Analysis ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( heap Analysis Ġis ĠHeap Analysis Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheap Analysis . all Le aks . as Sequence (). flatMap Ġ{ Ġit . leak Tr aces . as Sequence () Ġ}. forEach Ġ{ Ġleak Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlog Ġthe Ġmemory Ġleak Ġto ĠCrash ly t ics ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCrash ly t ics . log (" *** ĠMemory ĠLe ak Ġ*** ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleak . toString (). take ( LOG _ LIMIT ). lines (). as Sequence (). filter Not Ġ{ Ġit . isEmpty () Ġ}. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCrash ly t ics . log ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCrash ly t ics . log Exception ( leak . as Fake Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdefault Listener . on Heap Analy zed ( heap Analysis ) ĊĠĠĠ Ġ} Ċ } Ċ