package Ġcom . lim . gif maker . windows Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . PixelFormat Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . View Ċ import Ġandroid . view . WindowManager Ċ Ċ abstract Ġclass ĠOverlay Window ( context : ĠContext , Ġwindow Manager : ĠWindow Manager ) Ġ{ ĊĠĠĠ Ġprotected Ġvar ĠmContext : ĠContext ĊĠĠĠ Ġprotected Ġvar Ġm LayoutParams Ġ= ĠWindow Manager . LayoutParams () ĊĠĠĠ Ġprotected Ġvar Ġm WindowManager : ĠWindow Manager ĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġm View : ĠView ĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġm UI ChangeListener : ĠOverlay Window . UI Change CallBack ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġm WindowManager Ġ= Ġwindow Manager ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm LayoutParams . type Ġ= ĠWindow Manager . LayoutParams . TYPE _ APPLICATION _ OVER LAY ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm LayoutParams . type Ġ= ĠWindow Manager . LayoutParams . TYPE _ PHONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm LayoutParams . format Ġ= ĠPixel Format . RGBA _ 8 8 8 8 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġinit LayoutParams And Show ( x : ĠInt Ġ= Ġ 0 , Ġy : ĠInt Ġ= Ġ 0 , Ġwidth : ĠInt Ġ= Ġ 0 , Ġheight : ĠInt Ġ= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm LayoutParams . width Ġ= Ġwidth ĊĠĠĠĠĠĠĠ Ġm LayoutParams . height Ġ= Ġheight ĊĠĠĠĠĠĠĠ Ġm LayoutParams . x Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġm LayoutParams . y Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġm WindowManager . addView ( m View , Ġm LayoutParams ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Listener ( listener : ĠUI Change CallBack ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm UI ChangeListener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġset Position ( x : ĠInt , Ġy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm LayoutParams . x Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġm LayoutParams . y Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġm WindowManager . update View Layout ( m View , Ġm LayoutParams ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġset Size ( width : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm LayoutParams . width Ġ= Ġwidth ĊĠĠĠĠĠĠĠ Ġm LayoutParams . height Ġ= Ġheight ĊĠĠĠĠĠĠĠ Ġm WindowManager . update View Layout ( m View , Ġm LayoutParams ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Panel Position ( y : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm LayoutParams . y Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġm WindowManager . update View Layout ( m View , Ġm LayoutParams ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Visibility ( visibility : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm View . visibility Ġ= Ġvisibility ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠUI Change CallBack Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Move ( x : ĠInt , Ġy : ĠInt ) ĊĠĠĠĠĠĠĠ Ġfun Ġon Scale ( x : ĠInt , Ġy : ĠInt ) ĊĠĠĠĠĠĠĠ Ġfun Ġon Panel Move ( y : ĠInt ) ĊĠĠĠ Ġ} Ċ }