package Ġcom . v itan ov . multi image picker . Fish B un Mod . java . com . s ang com z . fish bun . ui . detail . ui Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . Window Ċ import Ġandroid . widget . Image Button Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġandroidx . view pager . widget . ViewPager . On Page ChangeListener Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . v itan ov . multi image picker . Fish B un Mod . java . com . s ang com z . fish bun . Base Activity Ċ import Ġcom . v itan ov . multi image picker . Fish B un Mod . java . com . s ang com z . fish bun . Fis ht on Ċ import Ġcom . v itan ov . multi image picker . R Ċ import Ġcom . v itan ov . multi image picker . Fish B un Mod . java . com . s ang com z . fish bun . adapter . image . Image Adapter Ċ import Ġcom . v itan ov . multi image picker . Fish B un Mod . java . com . s ang com z . fish bun . datasource . Fish B un DataSource Impl Ċ import Ġcom . v itan ov . multi image picker . Fish B un Mod . java . com . s ang com z . fish bun . ui . detail . Detail Image Contract Ċ import Ġcom . v itan ov . multi image picker . Fish B un Mod . java . com . s ang com z . fish bun . ui . detail . adapter . Detail ViewPager Adapter Ċ import Ġcom . v itan ov . multi image picker . Fish B un Mod . java . com . s ang com z . fish bun . ui . detail . model . Detail Image Repository Impl Ċ import Ġcom . v itan ov . multi image picker . Fish B un Mod . java . com . s ang com z . fish bun . ui . detail . model . Detail ImageView Data Ċ import Ġcom . v itan ov . multi image picker . Fish B un Mod . java . com . s ang com z . fish bun . ui . detail . mvp . Detail Image Presenter Ċ import Ġcom . v itan ov . multi image picker . Fish B un Mod . java . com . s ang com z . fish bun . util . Radio With Text Button Ċ import Ġcom . v itan ov . multi image picker . Fish B un Mod . java . com . s ang com z . fish bun . util . setStatus Bar Color Ċ Ċ class ĠDetail Image Activity Ġ: ĠBase Activity (), ĠDetail Image Contract . View , ĠOn Page ChangeListener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpresenter : ĠDetail Image Contract . Presenter ĊĊĠĠĠ Ġprivate Ġvar Ġbtn Detail Count : ĠRadio With Text Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġvp Detail Pager : ĠView Pager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbtn Detail Back : ĠImage Button ? Ġ= Ġnull ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . request Feature ( Window . FEATURE _ CONTENT _ TRANS ITION S ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ detail _ activity ) ĊĠĠĠĠĠĠĠ Ġinit View () ĊĊĠĠĠĠĠĠĠ Ġpresenter Ġ= Ġcreate Presenter () ĊĠĠĠĠĠĠĠ Ġpresenter . handle On Create ( intent . getInt Extra ( INIT _ IMAGE _ POSITION , Ġ- 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġvp Detail Pager ?. remove On Page ChangeListener ( this ) ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish Activity () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate RadioButton With Text ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// FIX ME ĠNeed Ġto Ġfix Ġto Ġwork Ġwithout Ġpost ĊĠĠĠĠĠĠĠ Ġbtn Detail Count ?. post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Detail Count ?. setText ( text ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate RadioButton With Drawable () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġradio Button Ġ= Ġbtn Detail Count Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ ĠContext Compat . get Drawable ( this , ĠR . drawable . ic _ done _ white _ 2 4 dp )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġradio Button . set Drawable ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Snackbar ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn Detail Count ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( it , Ġmessage , ĠSn ackbar . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġun select Image () Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn Detail Count ?. un select () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . change Button Status ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfinish Activity () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ OK , Ġi ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset ToolBar ( detail ImageView Data : ĠDetail ImageView Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . setStatus Bar Color ( Color . BLACK ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Count Button ( detail ImageView Data : ĠDetail ImageView Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn Detail Count ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun select () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Circle Color ( detail ImageView Data . color ActionBar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( detail ImageView Data . color ActionBar Title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Stroke Color ( detail ImageView Data . color Select Circle Stroke ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Position Ġ= Ġvp Detail Pager ?. currentItem Ġ?: Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Count Click ( current Position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Back Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn Detail Back ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish Activity () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Images ( init Position : ĠInt , Ġpicker Images : ĠList < Uri >) Ġ{ ĊĠĠĠĠĠĠĠ Ġvp Detail Pager ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( adapter Ġas ? ĠDetail ViewPager Adapter )?. set Images ( picker Images ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Item Ġ= Ġinit Position ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfinish And Show Error Toast () Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠR . string . msg _ error , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit ViewPager Adapter ( image Adapter : ĠImage Adapter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvp Detail Pager ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠDetail ViewPager Adapter ( image Adapter ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ= ĠUnit ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( position : ĠInt , Ġposition Offset : ĠFloat , Ġposition Offset Pixels : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ ĠUnit ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġvp Detail Pager Ġ= ĠfindViewById ( R . id . vp _ detail _ pager ) ĊĠĠĠĠĠĠĠ Ġbtn Detail Count Ġ= ĠfindViewById ( R . id . btn _ detail _ count ) ĊĠĠĠĠĠĠĠ Ġbtn Detail Back Ġ= ĠfindViewById ( R . id . btn _ detail _ back ) ĊĊĠĠĠĠĠĠĠ Ġvp Detail Pager ?. add On Page ChangeListener ( this @ Detail Image Activity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Presenter () Ġ= ĠDetail Image Presenter ( ĊĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠ ĠDetail Image Repository Impl ( Fish B un DataSource Impl ( Fis ht on )) ĊĠĠĠ Ġ) ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINIT _ IMAGE _ POSITION Ġ= Ġ" init _ image _ position " ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Detail Image Activity ( context : ĠContext , Ġinit Position : ĠInt ): ĠIntent Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( context , ĠDetail Image Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( INIT _ IMAGE _ POSITION , Ġinit Position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }