package Ġcom . ex mp le . base project mvp . mvp . view Ċ Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . os . Build Ċ import Ġandroid . support . v 4 . view . View Compat Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . transition . Transition Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . Decode Format Ċ import Ġcom . bump tech . glide . load . resource . drawable . Drawable Transition Options Ċ import Ġcom . ex mp le . base project mvp . R Ċ import Ġcom . ex mp le . base project mvp . mvp . adapter . Category Adapter Ċ import Ġcom . ex mp le . base project mvp . mvp . adapter . Video Detail Adapter Ċ import Ġcom . ex mp le . base project mvp . mvp . contract . IM ain Contact Ċ import Ġcom . ex mp le . base project mvp . mvp . contract . IV ideo Detail Contract Ċ import Ġcom . ex mp le . base project mvp . mvp . contract . fragment . IC ategory Contract Ċ import Ġcom . ex mp le . base project mvp . mvp . presenter . Video Detail Presenter Ċ import Ġcom . ex mp le . base project mvp . widget . Constants Ċ import Ġcom . ex mp le . base project mvp . widget . Video Listener Ċ import Ġcom . ex mp le . base project mvp . widget . Watch History Utils Ċ import Ġcom . ex mp le . core lib . base . Lib Application Ċ import Ġcom . ex mp le . core lib . mvp . Base M vp Activity Ċ import Ġcom . ex mp le . core lib . mvp . Base M vp List Activity Ċ import Ġcom . ex mp le . core lib . state . I State View Ċ import Ġcom . ex mp le . core lib . utils . Clean Leak Utils Ċ import Ġcom . ex mp le . core lib . utils . StatusBar Util Ċ import Ġcom . h azz . kotlin mvp . mvp . model . bean . Category Bean Ċ import Ġcom . h azz . kotlin mvp . mvp . model . bean . Home Bean Ċ import Ġcom . or h ano but . logger . Logger Ċ import Ġcom . sc wang . smart refresh . header . Material Header Ċ import Ġcom . sc wang . smart refresh . layout . Smart Refresh Layout Ċ import Ġcom . sh uy u . gs y vide op layer . listener . Lock ClickListener Ċ import Ġcom . sh uy u . gs y vide op layer . utils . Orientation Utils Ċ import Ġcom . sh uy u . gs y vide op layer . video . Standard G SY Video Player Ċ import Ġcom . sh uy u . gs y vide op layer . video . base . G SY Video Player Ċ import Ġkotlinx . android . synt hetic . main . activity _ video _ detail .* Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ@ author : Ġ${ br uce } Ċ Ġ* Ġ@ project : ĠKotlin M vp Example - master Ċ Ġ* Ġ@ package : Ġcom . ex mp le . base project mvp . mvp . view Ċ Ġ* Ġ@ description : è§Ĩé¢ĳ è¯¦æĥħ Ċ Ġ* Ġ@ date : Ġ 2 0 1 9 / 6 / 6 Ċ Ġ* Ġ@ time : ĠĠ 1 5 : 5 0 Ċ Ġ*/ Ċ Ġclass ĠVideo Detail Activity Ġ: ĠBase M vp Activity < IV ideo Detail Contract . View , ĠI Video Detail Contract . Presenter >(), ĠI Video Detail Contract . View Ġ{ ĊĊĠĠ Ġoverride Ġvar Ġm Presenter : ĠI Video Detail Contract . Presenter Ġ= ĠVideo Detail Presenter () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠI MG _ TRANS ITION Ġ= Ġ" IMG _ TRANS ITION " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTRANS ITION Ġ= Ġ" TRANS ITION " ĊĠĠĠ Ġ} ĊĊĠĠ Ġ/** ĊĠĠĠ Ġ* Ġ ç¬¬ ä¸Ģæ¬¡ è°ĥçĶ¨ çļĦæĹ¶åĢĻ åĪĿå§ĭåĮĸ ĊĠĠĠ Ġ*/ Ċ // ĠĠ Ġprivate Ġval Ġm Adapter Ġby Ġlazy Ġ{ ĠVideo Detail Adapter ( this , Ġitem List ) Ġ} ĊĊĠĠ Ġ// è®¾ç½® ç¬¬ ä¸Ģæ¬¡ è¯·æ±Ĥ çļĦæķ°æį® ĊĠĠ Ġprivate Ġvar Ġdemo Adapter Ġ: ĠVideo Detail Adapter ? Ġ= Ġnull Ċ Ċ // ĠĠ Ġprivate Ġ Ġvar Ġcategory List = ĠArrayList < Category Bean >() ĊĊĠĠ Ġprivate Ġval Ġm Format Ġby Ġlazy Ġ{ ĠSimpleDateFormat (" yyyy MM dd HH mm ss "); Ġ} ĊĊĠĠ Ġ/** ĊĠĠĠ Ġ* ĠItem Ġ è¯¦ç»Ĩ æķ°æį® ĊĠĠĠ Ġ*/ ĊĠĠ Ġprivate Ġ Ġvar Ġitem Data : ĠHome Bean . Issue . Item ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġorientation Utils : ĠOrientation Utils ? Ġ= Ġnull ĊĊĠĠ Ġprivate Ġvar Ġitem List Ġ= Ġjava . util . ArrayList < Home Bean . Issue . Item >() ĊĊĠĠ Ġprivate Ġvar Ġis Play : ĠBoolean Ġ= Ġfalse ĊĠĠ Ġprivate Ġvar Ġis Pause : ĠBoolean Ġ= Ġfalse ĊĊĊĠĠ Ġprivate Ġvar Ġis Transition : ĠBoolean Ġ= Ġfalse ĊĊĠĠ Ġprivate Ġvar Ġtransition : ĠTransition ? Ġ= Ġnull ĊĠĠ Ġprivate Ġvar Ġm Material Header : ĠMaterial Header ? Ġ= Ġnull ĊĊĊĊĠĠĠ Ġoverride Ġfun Ġget ContentView (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . activity _ video _ detail ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġitem Data Ġ= Ġintent . get Serializable Extra ( Constants . B UNDLE _ VIDEO _ DATA ) Ġas ĠHome Bean . Issue . Item ĊĠĠĠĠĠĠĠ Ġis Transition Ġ= Ġintent . getBoolean Extra ( TRANS ITION , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġsave Watch Video History Info ( item Data !! ) ĊĠĠĠĠĠĠ Ġ// è¿ĩ æ¸ ¡ åĬ¨çĶ» ĊĠĠĠĠĠĠ Ġinit Transition () ĊĠĠĠĠĠĠ Ġinit Video View Config () ĊĊĠĠĠĠĠĠ Ġm RecyclerView . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġdemo Adapter = ĠVideo Detail Adapter ( data List Ġ= Ġitem List ) ĊĠĠĠĠĠĠ Ġm RecyclerView . adapter Ġ= Ġdemo Adapter ĊĊĠĠĠĠĠĠ Ġ// è®¾ç½® çĽ¸åħ³ è§Ĩé¢ĳ ĠItem ĠçļĦ çĤ¹åĩ» äºĭä»¶ ĊĠĠĠĠĠĠ Ġdemo Adapter ?. setOn Item Detail Click Ġ{ Ġm Presenter . load Video Info ( it ) Ġ} ĊĊĠĠĠĠĠĠ Ġ// çĬ¶æĢģ æłı éĢı æĺİ åĴĮ éĹ´ è·Ŀ å¤ĦçĲĨ ĊĠĠĠĠĠĠ ĠStatus Bar Util . imm ers ive ( this ) ĊĠĠĠĠĠĠ ĠStatus Bar Util . set Padding Smart ( this , Ġm Video View ) ĊĊĠĠĠĠĠĠ Ġ/** * Ġ Ġä¸ĭ æĭī åĪ·æĸ° Ġ Ġ*** / ĊĠĠĠĠĠĠ Ġ// åĨħå®¹ è·Ł éļı åģı ç§» ĊĠĠĠĠĠĠ Ġm Refresh Layout . set Enable Header Translation Content ( true ) ĊĠĠĠĠĠĠ Ġm Refresh Layout . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġload Video Info () ĊĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠ Ġm Material Header Ġ= Ġm Refresh Layout . refresh Header Ġas ĠMaterial Header ? ĊĠĠĠĠĠĠ Ġ// æīĵå¼Ģ ä¸ĭ æĭī åĪ·æĸ° åĮºåŁŁ åĿĹ èĥĮæĻ¯ : ĊĠĠĠĠĠĠ Ġm Material Header ?. set Show Bezier Wave ( true ) ĊĠĠĠĠĠĠ Ġ// è®¾ç½® ä¸ĭ æĭī åĪ·æĸ° ä¸»é¢ĺ é¢ľèī² ĊĠĠĠĠĠĠ Ġm Refresh Layout . set Primary Colors Id ( R . color . color _ light _ black , ĠR . color . color _ title _ bg ) ĊĠĠĠ Ġ} ĊĊĊĠĠ Ġ/** ĊĠĠĠ Ġ* ĠåĪĿå§ĭåĮĸ ĠVideo View ĠçļĦ éħįç½® ĊĠĠĠ Ġ*/ ĊĠĠ Ġprivate Ġfun Ġinit Video View Config () Ġ{ ĊĠĠĠĠĠ Ġ// è®¾ç½® æĹ ĭ è½¬ ĊĠĠĠĠĠ Ġorientation Utils Ġ= ĠOrientation Utils ( this , Ġm Video View ) ĊĠĠĠĠĠ Ġ// æĺ¯åĲ¦ æĹ ĭ è½¬ ĊĠĠĠĠĠ Ġm Video View . is Rotate View Auto Ġ= Ġfalse ĊĠĠĠĠĠ Ġ// æĺ¯åĲ¦ åı¯ä»¥ æ»ĳ åĬ¨ è°ĥæķ´ ĊĠĠĠĠĠ Ġm Video View . setIs Touch Wi get ( true ) ĊĊĠĠĠĠĠ Ġ// å¢ŀåĬł å°ģ éĿ¢ ĊĠĠĠĠĠ Ġval ĠimageView Ġ= ĠImageView ( this ) ĊĠĠĠĠĠ ĠimageView . scale Type Ġ= ĠImageView . Scale Type . CENTER _ C ROP ĊĠĠĠĠĠ ĠG lide . with ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( item Data ?. data ?. cover ?. feed ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( imageView ) ĊĠĠĠĠĠ Ġm Video View . thumb ImageView Ġ= ĠimageView ĊĊĠĠĠĠĠ Ġm Video View . set Standard Video All CallBack ( object Ġ: ĠVideo Listener Ġ{ ĊĊĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Prepared ( url : ĠString , Ġvar arg Ġobjects : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Prepared ( url , Ġ* objects ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¼Ģå§ĭ æĴŃæĶ¾ äºĨ æīįèĥ½ æĹ ĭ è½¬ åĴĮ åħ¨ å±ı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorientation Utils ?. is Enable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Play Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Auto Complete ( url : ĠString , Ġvar arg Ġobjects : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Auto Complete ( url , Ġ* objects ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . d (" ***** Ġon Auto Play Complete Ġ**** Ġ") ĊĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Play Error ( url : ĠString , Ġvar arg Ġobjects : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Play Error ( url , Ġ* objects ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (" æĴŃæĶ¾ å¤±è´¥ ") ĊĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Enter Fullscreen ( url : ĠString , Ġvar arg Ġobjects : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Enter Fullscreen ( url , Ġ* objects ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . d (" ***** Ġon Enter Fullscreen Ġ**** Ġ") ĊĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Quit Fullscreen ( url : ĠString , Ġvar arg Ġobjects : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Quit Fullscreen ( url , Ġ* objects ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . d (" ***** Ġon Quit Fullscreen Ġ**** Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪĹè¡¨ è¿ĶåĽŀ çļĦ æł·å¼ı åĪ¤æĸŃ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorientation Utils ?. back To Prot Video () ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠ Ġ// è®¾ç½® è¿ĶåĽŀ æĮī éĶ® åĬŁèĥ½ ĊĠĠĠĠĠ Ġm Video View . back Button . setOnClickListener ({ Ġon Back Pressed () Ġ}) ĊĠĠĠĠĠ Ġ// è®¾ç½® åħ¨ å±ı æĮī éĶ® åĬŁèĥ½ ĊĠĠĠĠĠ Ġm Video View . fullscreen Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ// çĽ´æİ¥ æ¨ ª å±ı ĊĠĠĠĠĠĠĠĠ Ġorientation Utils ?. resolve By Click () ĊĠĠĠĠĠĠĠĠ Ġ// ç¬¬ä¸Ģä¸ª true æĺ¯åĲ¦ éľĢè¦ģ éļĲèĹı action bar ï¼Į ç¬¬äºĮ ä¸ª true æĺ¯åĲ¦ éľĢè¦ģ éļĲèĹı status bar ĊĠĠĠĠĠĠĠĠ Ġm Video View . start Window Fullscreen ( this , Ġtrue , Ġtrue ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ// éĶģ å±ı äºĭä»¶ ĊĠĠĠĠĠ Ġm Video View . set Lock ClickListener ( object Ġ: ĠLock ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ?, Ġlock : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// éħį åĲĪ ä¸ĭ æĸ¹ çļĦ on Configuration Changed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorientation Utils ?. is Enable Ġ= Ġ! lock ĊĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġ}) ĊĠĠ Ġ} ĊĊĠĠ Ġ/** ĊĠĠĠ Ġ* ĠåĪĿå§ĭåĮĸ æķ°æį® ĊĠĠĠ Ġ*/ ĊĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠ Ġ} ĊĊĊĠĠ Ġ/** ĊĠĠĠ Ġ* Ġ ä¿ĿåŃĺ è§Ĥ çľĭ è®°å½ķ ĊĠĠĠ Ġ*/ ĊĠĠ Ġprivate Ġfun Ġsave Watch Video History Info ( watch Item : ĠHome Bean . Issue . Item ) Ġ{ ĊĠĠĠĠĠ Ġ// ä¿ĿåŃĺ ä¹ĭåīį è¦ģ åħĪ æŁ¥è¯¢ sp ä¸Ń æĺ¯åĲ¦ æľī è¯¥ value çļĦ è®°å½ķ ï¼Į æľī åĪĻ åĪłéĻ¤ . è¿Ļæł· ä¿Ŀè¯ģ æĲľç´¢ åİĨåı² è®°å½ķ ä¸įä¼ļ æľī éĩįå¤į æĿ¡ çĽ® ĊĠĠĠĠĠ Ġval Ġhistory Map Ġ= ĠWatch History Utils . getAll ( Constants . FILE _ WATCH _ HISTORY _ NAME , Lib Application . mContext ) Ġas ĠMap < *, Ġ*> ĊĠĠĠĠĠ Ġfor Ġ(( key , Ġ_) Ġin Ġhistory Map ) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġif Ġ( watch Item Ġ== ĠWatch History Utils . getObject ( Constants . FILE _ WATCH _ HISTORY _ NAME , Lib Application . mContext , Ġkey Ġas ĠString )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWatch History Utils . remove ( Constants . FILE _ WATCH _ HISTORY _ NAME , Lib Application . mContext , Ġkey ) ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠWatch History Utils . put Object ( Constants . FILE _ WATCH _ HISTORY _ NAME , Lib Application . mContext , Ġwatch Item , "" Ġ+ Ġm Format . format ( Date ())) ĊĠĠ Ġ} ĊĊĠĠ Ġoverride Ġfun Ġdismiss Loading () Ġ{ ĊĠĠĠĠĠ Ġm Refresh Layout . finish Refresh () ĊĠĠ Ġ} ĊĊĠĠ Ġ/** ĊĠĠĠ Ġ* Ġè®¾ç½® æĴŃæĶ¾ è§Ĩé¢ĳ ĠURL ĊĠĠĠ Ġ*/ ĊĠĠ Ġoverride Ġfun Ġset Video ( url : ĠString ) Ġ{ ĊĠĠĠĠĠ ĠLogger . d (" play Url :$ url ") ĊĠĠĠĠĠ Ġm Video View . setUp ( url , Ġfalse , Ġ"") ĊĠĠĠĠĠ Ġ// å¼Ģå§ĭ èĩªåĬ¨ æĴŃæĶ¾ ĊĠĠĠĠĠ Ġm Video View . start Play Logic () ĊĠĠ Ġ} ĊĊĠĠ Ġ/** ĊĠĠĠ Ġ* Ġè®¾ç½® è§Ĩé¢ĳ ä¿¡æģ¯ ĊĠĠĠ Ġ*/ ĊĠĠ Ġoverride Ġfun Ġset Video Info ( item Info : ĠHome Bean . Issue . Item ) Ġ{ ĊĠĠĠĠĠ Ġitem Data Ġ= Ġitem Info ĊĠĠĠĠĠ Ġdemo Adapter ?. addData ( item Info ) ĊĠĠĠĠĠ Ġ// Ġè¯·æ±Ĥ çĽ¸åħ³ çļĦ æľĢæĸ° çŃī è§Ĩé¢ĳ ĊĠĠĠĠĠ Ġm Presenter . request Related Video ( item Info . data ?. id ?: 0 ) ĊĊĠĠ Ġ} ĊĊĊĠĠ Ġ/** ĊĠĠĠ Ġ* Ġè®¾ç½® çĽ¸åħ³ çļĦæķ°æį® è§Ĩé¢ĳ ĊĠĠĠ Ġ*/ ĊĠĠ Ġoverride Ġfun Ġset Recent Related Video ( List : ĠArrayList < Home Bean . Issue . Item >) Ġ{ ĊĠĠĠĠĠĠ Ġitem List . addAll ( List ) ĊĠĠĠĠĠĠ Ġdemo Adapter ?. addData ( item List ) Ċ // ĠĠĠĠĠĠ Ġthis . item List Ġ= Ġitem List ĊĠĠ Ġ} ĊĊĊĠĠ Ġ/** ĊĠĠĠ Ġ* Ġè®¾ç½® èĥĮæĻ¯ é¢ľèī² ĊĠĠĠ Ġ*/ ĊĠĠ Ġoverride Ġfun Ġset Background ( url : ĠString ) Ġ{ ĊĠĠĠĠĠ ĠG lide . with ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( url ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Crop () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. format ( Decode Format . PREFER _ ARGB _ 8 8 8 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transition ( Drawable Transition Options (). cross Fade ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( m Video Background ) ĊĠĠ Ġ} ĊĊĊĠĠ Ġoverride Ġfun Ġon Configuration Changed ( new Config : ĠConfiguration ?) Ġ{ ĊĠĠĠĠĠ Ġsuper . on Configuration Changed ( new Config ) ĊĠĠĠĠĠ Ġif Ġ( is Play Ġ&& Ġ! is Pause ) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġm Video View . on Configuration Changed ( this , Ġnew Config , Ġorientation Utils ) ĊĠĠĠĠĠ Ġ} ĊĠĠ Ġ} ĊĊĠĠ Ġ/** ĊĠĠĠ Ġ* Ġ 1 . åĬłè½½ è§Ĩé¢ĳ ä¿¡æģ¯ ĊĠĠĠ Ġ*/ ĊĠĠ Ġfun Ġload Video Info () Ġ{ ĊĠĠĠĠĠ Ġm Presenter . load Video Info ( this !!. item Data !! ) ĊĠĠ Ġ} ĊĊĠĠ Ġ/** ĊĠĠĠ Ġ* Ġ çĽĳåĲ¬ è¿ĶåĽŀ éĶ® ĊĠĠĠ Ġ*/ ĊĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠ Ġorientation Utils ?. back To Prot Video () ĊĠĠĠĠĠ Ġif Ġ( Standard G SY Video Player . back From Window Full ( this )) ĊĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠ Ġ// éĩĬæĶ¾ æīĢæľī ĊĠĠĠĠĠ Ġm Video View . set Standard Video All CallBack ( null ) ĊĠĠĠĠĠ ĠG SY Video Player . release All Videos () ĊĠĠĠĠĠ Ġif Ġ( is Transition Ġ&& ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . anim _ out , ĠR . anim . anim _ in ) ĊĠĠĠĠĠ Ġ} ĊĠĠ Ġ} ĊĊĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠ Ġget Cur Play (). on Video Resume () ĊĠĠĠĠĠ Ġis Pause Ġ= Ġfalse ĊĠĠ Ġ} ĊĊĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠ Ġget Cur Play (). on Video Pause () ĊĠĠĠĠĠ Ġis Pause Ġ= Ġtrue ĊĠĠ Ġ} ĊĊĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠ ĠClean Leak Utils . fix Input Method Manager Leak ( this ) ĊĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠ ĠG SY Video Player . release All Videos () ĊĠĠĠĠĠ Ġorientation Utils ?. release Listener () Ċ // ĠĠĠĠĠ Ġm Presenter . detach View () ĊĠĠ Ġ} ĊĊĠĠ Ġprivate Ġfun Ġget Cur Play (): ĠG SY Video Player Ġ{ ĊĠĠĠĠĠ Ġreturn Ġif Ġ( m Video View . full Window Player Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġm Video View . full Window Player ĊĠĠĠĠĠ Ġ} Ġelse Ġm Video View ĊĠĠ Ġ} ĊĊĠĠ Ġprivate Ġfun Ġinit Transition () Ġ{ ĊĠĠĠĠĠ Ġif Ġ( is Transition Ġ&& ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġpost p one Enter Transition () ĊĠĠĠĠĠĠĠĠ ĠView Compat . set Transition Name ( m Video View , ĠI MG _ TRANS ITION ) ĊĠĠĠĠĠĠĠĠ Ġadd Transition Listener () ĊĠĠĠĠĠĠĠĠ Ġstart Post p oned Enter Transition () ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠ Ġload Video Info () ĊĠĠĠĠĠ Ġ} ĊĠĠ Ġ} ĊĊĠĠ Ġ@ Target Api ( Build . VERSION _ CODES . LO L LI POP ) ĊĠĠ Ġprivate Ġfun Ġadd Transition Listener () Ġ{ ĊĠĠĠĠĠ Ġtransition Ġ= Ġwindow . shared Element Enter Transition ĊĠĠĠĠĠ Ġtransition ?. addListener ( object Ġ: ĠTransition . Transition Listener Ġ{ ĊĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Transition Resume ( p 0 : ĠTransition ?) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Transition Pause ( p 0 : ĠTransition ?) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Transition Cancel ( p 0 : ĠTransition ?) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Transition Start ( p 0 : ĠTransition ?) Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Transition End ( p 0 : ĠTransition ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . d (" on Transition End () ------ ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Video Info () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransition ?. remove Listener ( this ) ĊĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġ}) ĊĠĠ Ġ} ĊĊĠĠ Ġoverride Ġfun Ġshow Error ( error Msg : ĠString ) Ġ{ ĊĠĠĠĠĠ Ġshow Toast ( error Msg ) ĊĠĠ Ġ} Ċ }