package Ġcom . abs int he . any where _. model . manager Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . PixelFormat Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . View Ċ import Ġandroid . view . WindowManager Ċ import Ġcom . abs int he . any where _. services . overlay . I Collector Service Ċ import Ġcom . abs int he . any where _. utils . App Utils Ċ import Ġcom . abs int he . any where _. view . home . Collector View Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠCollector WindowManager ( context : ĠContext , Ġbinder : ĠI Collector Service ) Ġ{ ĊĊĠ Ġprivate Ġval Ġm WindowManager : ĠWindow Manager Ġ= ĊĠĠĠ Ġcontext . getSystem Service ( Context . WINDOW _ SERVICE ) Ġas ĠWindow Manager ĊĠ Ġprivate Ġvar Ġhas Added Ġ= Ġfalse ĊĊĠ Ġvar Ġview : ĠCollector View Ġ= ĠCollector View ( context , Ġbinder ) ĊĠĠĠ Ġprivate Ġset ĊĊĠ Ġfun Ġadd View () Ġ{ ĊĠĠĠ Ġif Ġ(! has Added ) Ġ{ ĊĠĠĠĠĠ Ġview . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Params Ġ= ĠLAY OUT _ PARAMS ĊĠĠĠĠĠĠĠ Ġmeasure ( View . Measure Spec . UNSPECIFIED , ĠView . Measure Spec . UNSPECIFIED ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġm WindowManager . addView ( view , ĠLAY OUT _ PARAMS ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġhas Added Ġ= Ġtrue ĊĠĠĠ ĠTim ber . d (" Collector Ġadd View .") ĊĠ Ġ} ĊĊĠ Ġfun Ġremove View () Ġ{ ĊĠĠĠ Ġif Ġ( has Added ) Ġ{ ĊĠĠĠĠĠ Ġview . let Ġ{ ĊĠĠĠĠĠĠĠ Ġm WindowManager . remove View ( view ) ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Collector Ġremove View .") ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġhas Added Ġ= Ġfalse ĊĠ Ġ} ĊĊĠ Ġfun Ġset Info ( pkg Name : ĠString , Ġcls Name : ĠString ) Ġ{ ĊĠĠĠ Ġview . set Info ( pkg Name , Ġcls Name ) ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġvar ĠLAY OUT _ PARAMS Ġ= ĠWindow Manager . LayoutParams (). apply Ġ{ ĊĠĠĠĠĠ Ġx Ġ= Ġwidth ĊĠĠĠĠĠ Ġy Ġ= Ġheight Ġ/ Ġ 2 ĊĠĠĠĠĠ Ġwidth Ġ= ĠWindow Manager . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠ Ġheight Ġ= ĠWindow Manager . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . END Ġor ĠGr avity . CENTER _ VERTICAL ĊĠĠĠĠĠ Ġformat Ġ= ĠPixel Format . RGBA _ 8 8 8 8 ĊĠĠĠĠĠ Ġflags Ġ= ĠWindow Manager . LayoutParams . FLAG _ NOT _ FOCUS ABLE ĊĊĠĠĠĠĠ Ġtype Ġ= Ġif Ġ( App Utils . at Least O ()) Ġ{ ĊĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . TYPE _ APPLICATION _ OVER LAY ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . TYPE _ PHONE ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ