package Ġcom . sp itch enko . photo editor . feature . main . presentation . d agger Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . databinding . Observable ArrayList Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġcom . sp itch enko . photo editor . R Ċ import Ġcom . sp itch enko . photo editor . databinding . Activity Main Binding Ċ import Ġcom . sp itch enko . photo editor . feature . main . domain . use case . get bitmap from uri . Get Bitmap From Uri Ċ import Ġcom . sp itch enko . photo editor . feature . main . domain . use case . get ex if . Get Ex if Ċ import Ġcom . sp itch enko . photo editor . feature . main . domain . use case . get results . Get Results Ċ import Ġcom . sp itch enko . photo editor . feature . main . domain . use case . remo ver es ult . Remove Result Ċ import Ġcom . sp itch enko . photo editor . feature . main . domain . use case . set controller image . Set Controller Image Ċ import Ġcom . sp itch enko . photo editor . feature . main . domain . use case . transform . invert bitmap . Invert Bitmap Ċ import Ġcom . sp itch enko . photo editor . feature . main . domain . use case . transform . mirror bitmap . Mirror Bitmap Ċ import Ġcom . sp itch enko . photo editor . feature . main . domain . use case . transform . rotate bitmap . Rotate Bitmap Ċ import Ġcom . sp itch enko . photo editor . feature . main . presentation . view . MainActivity Ċ import Ġcom . sp itch enko . photo editor . feature . main . presentation . view . adapter . Table Decoration Ċ import Ġcom . sp itch enko . photo editor . feature . main . presentation . view model . Main ViewModel Ċ import Ġcom . sp itch enko . photo editor . feature . main . presentation . view model . Main ViewModel Use Cases Ċ import Ġcom . sp itch enko . presentation . view . activity . get ViewModel Ċ import Ġcom . sp itch enko . presentation . view . binding . adapter . Binder Adapter Ċ import Ġcom . sp itch enko . presentation . view . binding . adapter . Binding ViewHolder Ċ import Ġcom . sp itch enko . presentation . view model . Events Dispatcher Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ Ċ @ Module Ċ class ĠMainActivity Module Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide ViewModel ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠMainActivity , ĊĠĠĠĠĠĠĠ Ġget Bitmap From Uri : ĠGet Bitmap From Uri , ĊĠĠĠĠĠĠĠ Ġrotate Bitmap : ĠRotate Bitmap , ĊĠĠĠĠĠĠĠ Ġinvert Bitmap : ĠIn vert Bitmap , ĊĠĠĠĠĠĠĠ Ġmirror Bitmap : ĠM irror Bitmap , ĊĠĠĠĠĠĠĠ Ġremove Result : ĠRemove Result , ĊĠĠĠĠĠĠĠ Ġset Controller Image : ĠSet Controller Image , ĊĠĠĠĠĠĠĠ Ġget Ex if : ĠGet Ex if , ĊĠĠĠĠĠĠĠ Ġget Results : ĠGet Results ĊĠĠĠ Ġ): ĠMain ViewModel Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . get ViewModel Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMain ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMain ViewModel Use Cases ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Bitmap From Uri , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrotate Bitmap , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmirror Bitmap , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvert Bitmap , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Result , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Controller Image , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Ex if , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Results ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvents Dispatcher (), ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObservable ArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . init () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Binding ( context , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Binding ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠMainActivity , ĊĠĠĠĠĠĠĠ ĠviewModel : ĠMain ViewModel ĊĠĠĠ Ġ): ĠActivity Main Binding Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠData Binding Util . set ContentView < Activity Main Binding >( context , ĠR . layout . activity _ main ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Main RecyclerView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġcreate Adapter ( context , ĠviewModel ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( Table Decoration ( context )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . events Dispatcher . bind ( context , Ġcontext ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding List Ġ= ĠviewModel . binding List ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Adapter ( context : ĠMainActivity , ĠviewModel : ĠMain ViewModel ): ĠB inder Adapter Ġ= ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠB inder Adapter ( context ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠBinding ViewHolder < ViewData Binding > Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuper . onCreate ViewHolder ( parent , Ġview Type ). also Ġ{ Ġbinding Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Type Ġ== ĠR . layout . item _ result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . item View . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Image Click ( binding . adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ }