package Ġcom . vv . nas ap od . ui čĊč Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . util . Log č Ċ import Ġandroid . view . View č Ċ import Ġandroidx . fragment . app . Fragment č Ċ import Ġandroidx . navigation . nav Graph ViewModels č Ċ import Ġandroidx . lifecycle . Observer č Ċ import Ġcom . google . android . material . sn ackbar . Snackbar č Ċ import Ġcom . squareup . pic asso . Callback č Ċ import Ġcom . squareup . pic asso . Pic asso č Ċ import Ġcom . vv . nas ap od . R č Ċ import Ġcom . vv . nas ap od . databinding . Screen Photo View Binding č Ċ import Ġcom . vv . nas ap od . getApp Component č Ċ import Ġcom . vv . nas ap od . ui . np od . N asa POD ViewModel č Ċ import Ġcom . vv . nas ap od . ui . np od . N asa POD ViewModel Factory č Ċ import Ġjavax . inject . Inject čĊč Ċ class ĠPhoto View Screen Ġ: ĠFragment ( R . layout . screen _ photo _ view ) Ġ{ čĊčĊĠĠĠ Ġ@ Inject čĊĠĠĠ Ġlateinit Ġvar Ġn asa POD ViewModel Factory : ĠN asa POD ViewModel Factory čĊĠĠĠ Ġ@ Inject čĊĠĠĠ Ġlateinit Ġvar Ġpic asso : ĠPic asso čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠScreen Photo View Binding čĊĠĠĠ Ġprivate Ġval Ġn asa A POD ViewModel : ĠN asa POD ViewModel Ġby Ġnav Graph ViewModels ( R . id . nav _ main ) Ġ{ Ġn asa POD ViewModel Factory Ġ} čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsn ackbar : ĠSn ackbar čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġget App Component (). inject Photo Screen ( this ) čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) čĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠScreen Photo View Binding . bind ( view ) čĊĠĠĠĠĠĠĠ Ġin setWindow () čĊĠĠĠĠĠĠĠ Ġn asa A POD ViewModel . hd Url . observe ( this . view Lifecycle Owner , ĠObserver Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpic asso . load ( it ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. resize ( 1 0 8 0 , 1 0 8 0 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. only Scale Down () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . zoom View , Ġimage Load CallBack ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ}) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġval Ġimage Load CallBack : ĠCallback Ġ= Ġobject Ġ: ĠCallback Ġ{ čĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess () Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress Bar . visibility Ġ= ĠView . GONE čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠException ?) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Error Ġloading ĠA POD ", e . toString ()) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress Bar . visibility Ġ= ĠView . GONE č Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġshow Sn ackBar ( getString ( R . string . error _ loading _ image )) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġin setWindow () Ġ{ čĊĠĠĠĠĠĠĠ Ġbinding . root . system Ui Visibility Ġ= Ġ( View . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ HIDE _ NAV IG ATION ) čĊĠĠĠ Ġ} čĊčĊč Ċ }