package Ġja . bur han r ash id 5 2 . photo editor Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġja . bur han r ash id 5 2 . photo editor . Multi Touch Listener . On Gesture Control Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠBur han udd in ĠR ash id Ġon Ġ 1 4 / 0 5 / 2 1 . Ċ Ġ* Ċ Ġ* Ġ@ author Ġ< https : ></ https : >// github . com / bur han r ash id 5 2 > Ċ Ġ*/ Ċ internal Ġabstract Ġclass ĠGraph ic ( ĊĠĠĠ Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġval Ġlayout Id : ĠInt , ĊĠĠĠ Ġval Ġview Type : ĠView Type , ĊĠĠĠ Ġval Ġgraphic Manager : ĠGraph ic Manager ?) Ġ{ ĊĊĠĠĠ Ġval Ġroot View : ĠView ĊĊĠĠĠ Ġopen Ġfun Ġupdate View ( view : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Optional Ġfor Ġsubclass Ġto Ġoverride ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( layout Id Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException (" Layout Ġid Ġcannot Ġbe Ġzero . ĠPlease Ġdefine Ġa Ġlayout ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġroot View Ġ= ĠLayoutInflater . from ( context ). inflate ( layout Id , Ġnull ) ĊĠĠĠĠĠĠĠ Ġsetup View ( root View ) ĊĠĠĠĠĠĠĠ Ġsetup Remove View ( root View ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġsetup Remove View ( root View : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// We Ġare Ġsetting Ġtag Ġas ĠView Type Ġto Ġidentify Ġwhat Ġtype Ġof Ġthe Ġview Ġit Ġis ĊĠĠĠĠĠĠĠ Ġ// when Ġwe Ġremove Ġthe Ġview Ġfrom Ġstack Ġi . e Ġon Remove View Listener ( ViewType Ġview Type , Ġint ĠnumberOf Added Views ); ĊĠĠĠĠĠĠĠ Ġroot View . tag Ġ= Ġview Type ĊĠĠĠĠĠĠĠ Ġval Ġimg Close Ġ= Ġroot View . findViewById < ImageView >( R . id . img Photo Editor Close ) ĊĠĠĠĠĠĠĠ Ġimg Close ?. setOnClickListener Ġ{ Ġgraphic Manager ?. remove View ( this @ Graphic ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġtoggle Selection () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfrm Border Ġ= Ġroot View . findViewById < View >( R . id . frm Border ) ĊĠĠĠĠĠĠĠ Ġval Ġimg Close Ġ= Ġroot View . findViewById < View >( R . id . img Photo Editor Close ) ĊĠĠĠĠĠĠĠ Ġif Ġ( frm Border Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrm Border . setBackground Resource ( R . drawable . rounded _ border _ tv ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrm Border . tag Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( img Close Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg Close . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġbuild Gesture Controller ( ĊĠĠĠĠĠĠĠ Ġview Group : ĠViewGroup , ĊĠĠĠĠĠĠĠ Ġview State : ĠPhoto Editor ViewState ĊĠĠĠ Ġ): ĠOn Gesture Control Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbox Helper Ġ= ĠBox Helper ( view Group , Ġview State ) ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠOn Gesture Control Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbox Helper . clear Helper Box () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Selection () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠChange Ġthe Ġin - focus Ġview ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview State . current Selected View Ġ= Ġroot View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Long Click () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate View ( root View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġsetup View ( root View : ĠView ) Ġ{} Ċ }