package Ġcom . rit esh ak ya . student . feature . login . ui . signup . profile picture Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View . GONE Ċ import Ġandroid . view . View . VISIBLE Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . rit esh ak ya . core . image . Photo Fragment Ċ import Ġcom . rit esh ak ya . student . Build Config Ċ import Ġcom . rit esh ak ya . student . R Ċ import Ġcom . rit esh ak ya . student . feature . login . navigation . Login Navigator Ċ import Ġcom . rit esh ak ya . student . feature . login . vm . SignUp ViewModel Ċ import Ġcom . rit esh ak ya . student . navigation . Navigator Ċ import Ġcom . rit esh ak ya . ui . components . Menu Bottom Sheet Ċ import Ġcom . rit esh ak ya . core . image loaders . I Image Loader Ċ import Ġkotlinx . android . synt hetic . main . fragment _ profile _ picture .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠProfile Picture Fragment Ġ: ĠPhoto Fragment () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġsign Up ViewModel : ĠSign Up ViewModel ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġimage Loader : ĠI Image Loader ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġnavigator : ĠLogin Navigator ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġmain Navigator : ĠNavigator ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmedia Picker Bottom Sheet : ĠMenu Bottom Sheet ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ= Ġinflater . inflate ( R . layout . fragment _ profile _ picture , Ġcontainer , Ġfalse ) ĊĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinitialize Click Listeners () ĊĠĠĠĠĠĠĠ Ġinitialize Mode Changes () ĊĠĠĠĠĠĠĠ Ġinitialize Media Picker () ĊĠĠĠĠĠĠĠ Ġimage Loader . load Image ( sign Up ViewModel . profile Photo . value Ġ?: Ġ"", ĠimageView ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize Click Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Img Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Photo Options () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfinish Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsign Up User () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize Mode Changes () Ġ{ ĊĠĠĠĠĠĠĠ Ġsign Up ViewModel . profile Photo . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Img Btn . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish Btn . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Img Btn . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish Btn . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize Media Picker () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Picker Bottom Sheet Ġ= ĠMenu Bottom Sheet . Builder ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Menu Selected Listener ( object Ġ: ĠMenu Bottom Sheet . Menu Selected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Dismiss () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Menu Selected ( id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . choose Action Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġphoto Pick Helper . request Pick Photo () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . take Action Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġphoto Pick Helper . request Take Photo ( Build Config . APPLICATION _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle (" Select ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Menu Items ( R . menu . photo _ action _ menu ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsign Up User () Ġ{ ĊĠĠĠĠĠĠĠ Ġsign Up ViewModel . sign Up User () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Loading () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Navigator . show Main ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. finish Affinity () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. until Stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetUp Image ( current Photo Path : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsign Up ViewModel . profile Photo . value Ġ= Ġcurrent Photo Path ĊĠĠĠĠĠĠĠ Ġimage Loader . load Image ( current Photo Path , ĠimageView ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Photo Options () Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Picker Bottom Sheet . show ( fragment Manager !! ) ĊĠĠĠ Ġ} Ċ }