package Ġcom . ur ban base . app . ar viewer . sample . kotlin . product Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ur ban base . app . ar viewer . sample . R Ċ import Ġcom . ur ban base . app . ar viewer . sample . common . Const Ċ import Ġcom . ur ban base . app . ar viewer . sample . kotlin . product . adapter . Style Item Adapter Ċ import Ġcom . ur ban base . app . ar viewer . sample . kotlin . product . adapter . Style Item Decoration Ċ import Ġcom . ur ban base . sdk . ar viewer . ar . UB Product Viewer Ċ import Ġcom . ur ban base . sdk . ar viewer . ar . listener . OnLoad Listener Ċ import Ġcom . ur ban base . sdk . ar viewer . ar . manager . Figure Load Manager Ċ import Ġcom . ur ban base . sdk . ar viewer . ar . manager . UB Asset Api Manager Ċ import Ġcom . ur ban base . sdk . ar viewer . ar . node . Figure Ċ import Ġcom . ur ban base . sdk . ar viewer . model . network . UB Asset Info Ċ Ċ class ĠProduct Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġvar ĠTAG Ġ= Ġ" Product Activity " ĊĠĠĠ Ġprivate Ġvar Ġasset UUID : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Asset Info : ĠU B Asset Info ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġub Product Viewer : ĠU B Product Viewer ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġstyle RecyclerView : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġstyle Adapter : ĠStyle Item Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġselected Style TextView : ĠTextView ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ product ) ĊĊĠĠĠĠĠĠĠ Ġasset UUID Ġ= Ġintent . getString Extra ( Const . INT ENT _ EXTRA _ AS SET _ UUID ) ĊĊĠĠĠĠĠĠĠ Ġinit Controls () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġon Resume () Ġìĭľ ĠProduct Viewer Ġstart Product Viewer () Ġíĺ¸ì¶ľ ĊĠĠĠĠ Ġ* ĠëĿ¼ ìĿ´ íĶĦ ìĤ¬ ìĿ´ íģ ´ Ġê´Ģ ëł¨ ëĲĺìĸ´ Ġíķ´ëĭ¹ Ġíķ¨ìĪĺ Ġíĺ¸ì¶ľ ĠíķĦ ìĪĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠĠĠĠĠ Ġ// Ġstart Ġìĭľ ìłĲ ìĹĲ ĠSurface Ġê´Ģ ëł¨ ĠìĹĲ ëŁ¬ ê°Ģ Ġë°ľ ìĥĿ íķł ĠìĪĺ ĠìŀĪ ìĸ´ Ġtry Ġêµ¬ ë¬¸ ìľ¼ë¡ľ Ġì²ĺë¦¬ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġub Product Viewer ?. start Product Viewer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠProduct Viewer Ġstart ĠíĽĦ ĠAsset Ġìłķë³´ Ġë¡ľ ëĶ © ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Asset Info () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" Product Viewer Ġstart Ġfailed ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġon Pause () Ġìĭľ ĠProduct Viewer Ġstop Product Viewer () Ġíĺ¸ì¶ľ ĊĠĠĠĠ Ġ* ĠëĿ¼ ìĿ´ íĶĦ ìĤ¬ ìĿ´ íģ ´ Ġê´Ģ ëł¨ ëĲĺìĸ´ Ġíķ´ëĭ¹ Ġíķ¨ìĪĺ Ġíĺ¸ì¶ľ ĠíķĦ ìĪĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġub Product Viewer ?. stop Product Viewer () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġon Destroy () Ġìĭľ ĠProduct Viewer Ġstop Product Viewer (), Ġfinish Product Viewer () Ġíĺ¸ì¶ľ ĊĠĠĠĠ Ġ* ĠëĿ¼ ìĿ´ íĶĦ ìĤ¬ ìĿ´ íģ ´ Ġê´Ģ ëł¨ ëĲĺìĸ´ Ġíķ´ëĭ¹ Ġíķ¨ìĪĺ Ġíĺ¸ì¶ľ ĠíķĦ ìĪĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġub Product Viewer ?. stop Product Viewer () ĊĠĠĠĠĠĠĠ Ġub Product Viewer ?. finish Product Viewer () ĊĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Controls () Ġ{ ĊĠĠĠĠĠĠĠ Ġub Product Viewer Ġ= ĠfindViewById ( R . id . ub _ product _ viewer ) ĊĠĠĠĠĠĠĠ Ġstyle RecyclerView Ġ= ĠfindViewById ( R . id . rv _ asset _ style ) ĊĠĠĠĠĠĠĠ Ġstyle RecyclerView ?. layout Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayoutManager ( this , ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġstyle RecyclerView ?. addItem Decoration ( Style Item Decoration ( 2 0 , Ġ 2 0 )) ĊĠĠĠĠĠĠĠ Ġstyle Adapter Ġ= ĠStyle Item Adapter ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠStyle ĠìĦłíĥĿ ĠëĲĺ ìĹĪ ìĿĦ Ġê²½ìļ° Ġì²ĺë¦¬ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Style TextView ?. text Ġ= Ġit . name Ġ Ġ// ĠìĦłíĥĿ ĠëĲľ ĠìĬ¤ íĥĢ ìĿ¼ ĠìĿ´ë¦Ħ Ġíĳľ ìĭľ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Style For Color Chip ( it . id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstyle RecyclerView ?. adapter Ġ= Ġstyle Adapter ĊĠĠĠĠĠĠĠ Ġselected Style TextView Ġ= ĠfindViewById ( R . id . tv _ style _ select ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Style For Color Chip ( style Id : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Id ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġub Product Viewer ?. set Product Style ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Asset Info () Ġ{ ĊĠĠĠĠĠĠĠ Ġasset UUID ?. let Ġ{ Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠU B Asset Api Manager ( this ). get Asset Info ( it , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= Ġ{ Ġasset Info Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Asset Info Ġ= Ġasset Info ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAsset Info ĠìĹĲ ìĦľ ĠìĬ¤ íĥĢ ìĿ¼ Ġëį°ìĿ´íĦ° Ġê°Ģ ìł¸ ìĻĢ ĠìĦ¤ìłķ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasset Info ?. asset _ styles ?. let Ġ{ Ġstyle List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Adapter ?. set Items ( style List ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠìĬ¤ íĥĢ ìĿ¼ Ġëį°ìĿ´íĦ° Ġì ´Ī ê¸° íĻĶ Ġìĭľ ĠìĦłíĥĿ ĠëĲľ ĠìĬ¤ íĥĢ ìĿ¼ Ġìłķë³´ Ġëħ¸ ì¶ľ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle List . forEach Ġ{ Ġstyle Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( style . is _ default Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Style TextView ?. text Ġ= Ġstyle . name Ġ Ġ// ĠìĦłíĥĿ ĠëĲľ ĠìĬ¤ íĥĢ ìĿ¼ ĠìĿ´ë¦Ħ Ġíĳľ ìĭľ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAsset Ġìłķë³´ Ġë¡ľ ëĵľ ĠíĽĦ ĠFigure Ġë¡ľ ëĵľ Ġìĭ¤íĸī ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFigure Load Manager . getInstance ( this ). load Figure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit , Ġis Preview Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). setOn Load Listener ( object Ġ: ĠOn Load Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad ( figure : ĠFigure ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Figure Load Manager Ġload Figure ĠonLoad Ġ: Ġ$ figure ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Progress ( asset UUID : ĠString , Ġpercent : ĠInt , Ġwhole Percent : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Figure Load Manager Ġload Figure Ġ[$ asset UUID ] ĠProgress Ġ: Ġ$ percent Ġ/ Ġ$ whole Percent ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġub Product Viewer ?. set Progress ( percent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Fail ( asset UUID : ĠString , ĠerrorCode : ĠInt , Ġerror Msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Figure Load Manager Ġload Figure ĠonLoad Fail Ġ: Ġ[$ asset UUID ] ĠerrorCode Ġ: Ġ$ errorCode , ĠerrorMessage Ġ: Ġ$ error Msg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Finally ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfigures : ĠArrayList < Figure >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Count : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Count : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail Count : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Figure Load Manager Ġload Figure Ġon Finally Ġ: Ġ$ figures , Ġrequest Count Ġ: Ġ$ request Count , Ġsuccess Count Ġ: Ġ$ success Count , Ġfail Count Ġ: Ġ$ fail Count ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fail Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Product Activity , ĠgetString ( R . string . toast _ message _ internet _ error ), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġub Product Viewer ?. attach Figure ( figures . first ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Failure Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" Load ĠAsset Info ĠFailed Ġ: Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }