package Ġcom . pit aya . mobile . u inspector . impl . hierarchy Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . text . method . Scrolling Movement Method Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġcom . pit aya . mobile . u inspector . U Inspector Ċ import Ġcom . pit aya . mobile . u inspector . hierarchy . Hierarchy Extra Info Plugin Ċ import Ġcom . pit aya . mobile . u inspector . impl . R Ċ import Ġcom . pit aya . mobile . u inspector . ui . panel . popup . U Inspector Child Panel Ċ import Ġcom . pit aya . mobile . u inspector . util . new Line Ċ import Ġcom . pit aya . mobile . u inspector . util . with Bold Ċ import Ġcom . pit aya . mobile . u inspector . util . with Color Ċ import Ġkotlinx . android . synt hetic . main . u inspector _ panel _ hierarchy . view .* Ċ Ċ /** Ċ Ġ* Ġ@ author ĠY ves Che ung Ċ Ġ* Ġ 2 0 2 1 / 1 / 2 Ċ Ġ*/ Ċ class ĠU Inspector Hierarchy Panel ( override Ġval Ġpriority : ĠInt ) Ġ: ĠU Inspector Child Panel Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġextra Info Service : ĠList < Hierarchy Extra Info Plugin > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠU Inspector . plugins [ Hierarchy Extra Info Plugin :: class . java ] ĊĊĠĠĠ Ġoverride Ġval Ġtitle Ġ= Ġ" Hierarchy " ĊĊĠĠĠ Ġ@ Suppress Lint (" Inf late Params ") ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( context : ĠContext ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= ĠLayoutInflater . from ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . u inspector _ panel _ hierarchy , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġlifecycle State Ġ= ĠU Inspector . currentState . with Lifecycle ĊĠĠĠĠĠĠĠ Ġval Ġhierarchy Ġ= Ġlifecycle State ?. last Target Views ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġlifecycle State ?. activity ĊĠĠĠĠĠĠĠ Ġval Ġtarget View Ġ= Ġhierarchy ?. last OrNull () ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ!= Ġnull Ġ&& Ġtarget View Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextra Info Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextra Info Service . flatMap Ġ{ Ġit . create ( activity , Ġtarget View ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs sb Ġ= ĠSp ann able StringBuilder () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( index , Ġview ) Ġin Ġhierarchy . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextra Info . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . before Hierarchy ( index , Ġview , Ġs sb ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġhierarchy . last Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs sb . with Bold Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Color ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs sb . new Line ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( view . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! view . id . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" (" ). append ( view . id ). append (" )") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs sb . new Line ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( view . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! view . id . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" (" ). append ( view . id ). append (" )") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextra Info . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . after Hierarchy ( index , Ġview , Ġs sb ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot . view _ hierarchy . movement Method Ġ= ĠScroll ing Movement Method () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot . view _ hierarchy . text Ġ= Ġs sb ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġroot ĊĠĠĠ Ġ} Ċ }