package Ġcom . ao ih os iz ora . desk to pt ips . ui . presenter Ċ Ċ import Ġandroid . content . Clip Data Ċ import Ġandroid . content . Clipboard Manager Ċ import Ġandroid . content . Context Ċ import Ġcom . ao ih os iz ora . desk to pt ips . global . Global Ċ import Ġcom . ao ih os iz ora . desk to pt ips . model . Tip Item Ċ import Ġcom . ao ih os iz ora . desk to pt ips . ui . contract . Tab Fragment Contract Ċ import Ġcom . ao ih os iz ora . desk to pt ips . util . swap Ċ Ċ class ĠTab Fragment Presenter ( ĊĠĠĠ Ġoverride Ġval Ġview : ĠTab Fragment Contract . I View Ċ ) Ġ: ĠTab Fragment Contract . IP res enter Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġadd Tip Item ( content : ĠString , ĠonSuccess : Ġ( String ) Ġ-> ĠUnit , Ġon Failed : Ġ( String ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Content Ġ= Ġcontent . trim () ĊĠĠĠĠĠĠĠ Ġif Ġ( new Content . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtip Item Ġ= ĠTip Item ( content ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! Global . tabs [ view . tab Idx ]. tips . add ( tip Item )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Failed ( content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGlobal . save Data ( view . getContext () !! ) ĊĠĠĠĠĠĠĠ ĠonSuccess ( content ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcopy Tip Items ( tip Items : ĠList < Tip Item >, ĠonSuccess : Ġ( String ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontents : ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġtip Items . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontents . add ( it . content ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġcontents . join ToString (", Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġcm Ġ= Ġview . getContext ()?. getSystem Service ( Context . CLIP BOARD _ SERVICE ) Ġas ? ĠClip board Manager ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠClip Data . new Plain Text (" Label ", Ġcontent ) ĊĠĠĠĠĠĠĠ Ġcm ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . primary Clip Ġ= Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess ( content ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Tip Item ( tip Item : ĠTip Item , Ġcontent : ĠString , ĠonSuccess : Ġ( String ) Ġ-> ĠUnit , Ġon Failed : Ġ( String ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Content Ġ= Ġcontent . trim () ĊĠĠĠĠĠĠĠ Ġif Ġ( new Content . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtip Item . content Ġ= Ġnew Content ĊĠĠĠĠĠĠĠ ĠGlobal . save Data ( view . getContext () !! ) ĊĠĠĠĠĠĠĠ ĠonSuccess ( new Content ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Tip Items ( items : ĠList < Tip Item >, ĠonSuccess : Ġ() Ġ-> ĠUnit , Ġon Failed : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( items . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtips Ġ= ĠGlobal . tabs [ view . tab Idx ]. tips ĊĠĠĠĠĠĠĠ Ġtips . forEach Ġ{ Ġtips . remove ( it ) Ġ} ĊĠĠĠĠĠĠĠ ĠGlobal . save Data ( view . getContext () !! ) ĊĠĠĠĠĠĠĠ ĠonSuccess () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmove Tip Item Up ( tip Item : ĠTip Item , ĠonSuccess : Ġ() Ġ-> ĠUnit , Ġon Failed : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtips Ġ= ĠGlobal . tabs [ view . tab Idx ]. tips ĊĠĠĠĠĠĠĠ Ġval Ġcurr Idx Ġ= Ġtips . indexOf ( tip Item ) ĊĠĠĠĠĠĠĠ Ġif Ġ( curr Idx Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGlobal . tabs [ view . tab Idx ]. tips . swap ( curr Idx , Ġcurr Idx Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ ĠGlobal . save Data ( view . getContext () !! ) ĊĠĠĠĠĠĠĠ ĠonSuccess () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmove Tip Item Down ( tip Item : ĠTip Item , ĠonSuccess : Ġ() Ġ-> ĠUnit , Ġon Failed : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtips Ġ= ĠGlobal . tabs [ view . tab Idx ]. tips ĊĠĠĠĠĠĠĠ Ġval Ġcurr Idx Ġ= Ġtips . indexOf ( tip Item ) ĊĠĠĠĠĠĠĠ Ġval Ġlen Ġ= Ġtips . size ĊĠĠĠĠĠĠĠ Ġif Ġ( curr Idx Ġ== Ġlen Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGlobal . tabs [ view . tab Idx ]. tips . swap ( curr Idx , Ġcurr Idx Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ ĠGlobal . save Data ( view . getContext () !! ) ĊĠĠĠĠĠĠĠ ĠonSuccess () ĊĠĠĠ Ġ} Ċ } Ċ