package Ġcom . j enn ifer . andy . simple ey es . player Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . Activity Info Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . media . Audio Manager Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . provider . Settings . Setting NotFoundException Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . ProgressBar Ċ import Ġcom . facebook . draw ee . view . Simple Draw ee View Ċ import Ġcom . j enn ifer . andy . simple ey es . R Ċ import Ġcom . j enn ifer . andy . simple ey es . player . view . Controller View Factory Ċ import Ġcom . j enn ifer . andy . simple ey es . utils .* Ċ import Ġtv . dan mak u . ijk . media . player . IM edia Player Ċ import Ġkotlin . math . abs ĊĊ Ċ /** Ċ Ġ* ĠAuthor : Ġ Ġand y . x wt Ċ Ġ* ĠDate : ĠĠĠĠ 2 0 2 0 / 3 / 1 4 Ġ 1 3 : 5 3 Ċ Ġ* ĠDescription : ĠI jk Video View Wrapper Ġ åĮħåĲ« äºĨ å¯¹ å£° éŁ³ äº ® åº¦ çļĦ æİ§åĪ¶ ï¼Į åĲĮæĹ¶ ä»£çĲĨ äºĨ [ I jk Video View ] çļĦ çĽ¸åħ³ æĸ¹æ³ķ Ċ Ġ*/ Ċ Ċ class ĠI jk Video View Wrapper Ġ@ Jvm Over loads Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 ) ĊĠĠĠ Ġ: ĠFrame Layout ( context , Ġattrs , Ġdef Style Attr ), ĠGest ure Detector . On Gesture Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġm I jk Video View : ĠI jk Video View ĊĊĠĠĠ Ġprivate Ġval Ġm Place Image : ĠSimple Draw ee View ĊĠĠĠ Ġprivate Ġval Ġm Center Progress : ĠProgress Bar ĊĠĠĠ Ġprivate Ġval Ġm Gesture Detector : ĠGest ure Detector ĊĠĠĠ Ġprivate Ġval Ġm Audio Manager : ĠAudio Manager ĊĊĠĠĠ Ġprivate Ġvar Ġm Light Dialog : ĠDialog ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Light Progress : ĠProgress Bar ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Volume Dialog : ĠDialog ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Volume Progress : ĠProgress Bar ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġis Show Volume Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġis Show Light Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġis Show Position Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġval Ġm Screen Height : ĠInt ĊĠĠĠ Ġprivate Ġvar Ġm Parent : ĠViewGroup ? Ġ= Ġnull ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMIN _ SCROLL Ġ= Ġ 3 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( R . layout . layout _ ijk _ wrapper , Ġthis , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġm Gesture Detector Ġ= ĠGest ure Detector ( context , Ġthis ) ĊĠĠĠĠĠĠĠ Ġm Audio Manager Ġ= ĠgetContext (). getSystem Service ( Context . AUDIO _ SERVICE ) Ġas ĠAudio Manager ĊĠĠĠĠĠĠĠ Ġm Screen Height Ġ= ĠgetContext (). get Screen Height () ĊĊĠĠĠĠĠĠĠ Ġm I jk Video View Ġ= ĠfindViewById ( R . id . video _ view ) ĊĠĠĠĠĠĠĠ Ġm Place Image Ġ= ĠfindViewById ( R . id . iv _ place _ image ) ĊĠĠĠĠĠĠĠ Ġm Center Progress Ġ= ĠfindViewById ( R . id . progress ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Place ImageUrl ( url : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoggle Place Image ( true ) ĊĠĠĠĠĠĠĠ Ġm Place Image . setImage URI ( url ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtoggle Place Image ( visibility : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Place Image . visibility Ġ= Ġif Ġ( visibility ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ Ġm Center Progress . visibility Ġ= Ġif Ġ( visibility ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhide Place Image () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Place Image . handler . post Delayed ({ Ġtoggle Place Image ( false ) Ġ}, Ġ 5 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Touch Event ( event : ĠMotion Event ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrel Value Ġ= Ġm Gesture Detector . on Touch Event ( event ) ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġevent . action ĊĠĠĠĠĠĠĠ Ġif Ġ( action Ġ== ĠMotion Event . ACTION _ UP ) Ġ{ Ġ// å½ĵ æīĭ æĮĩ æĬ ¬ èµ· çļĦæĹ¶åĢĻ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Up () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( action Ġ== ĠMotion Event . ACTION _ CANCEL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Cancel () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġrel Value ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Down ( e : ĠMotion Event ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ åįķ åĩ» ï¼Į è§¦ æĳ ¸ å±ı æĮī ä¸ĭ æĹ¶ ç«ĭ åĪ» è§¦åıĳ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Show Press ( e : ĠMotion Event ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ çŁŃ æĮī ï¼Į è§¦ æĳ ¸ å±ı æĮī ä¸ĭ åĲİ çīĩ åĪ» åĲİ æĬ ¬ èµ· ï¼Į ä¼ļ è§¦åıĳ è¿Ļä¸ª æīĭ åĬ¿ ï¼Į å¦Ĥæŀľ è¿ ħ éĢŁ æĬ ¬ èµ· åĪĻ ä¸įä¼ļ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Single Tap Up ( e : ĠMotion Event ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠæĬ ¬ èµ· ï¼Į æīĭ æĮĩ ç¦» å¼Ģ è§¦ æĳ ¸ å±ı æĹ¶ è§¦åıĳ ( éķ¿ æĮī ãĢģ æ»ļ åĬ¨ ãĢģ æ»ĳ åĬ¨ æĹ¶ ï¼Į ä¸įä¼ļ è§¦åıĳ è¿Ļä¸ª æīĭ åĬ¿ ) ĊĠĠĠĠĠĠĠ Ġif Ġ( m I jk Video View . isIn Playback State () Ġ&& Ġm I jk Video View . get Media Controller () Ġ!= Ġnull Ġ&& Ġ(! is Show Volume Ġ|| Ġ! is Show Light Ġ|| Ġis Show Position )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm I jk Video View . toggle Media Controls Visible () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġæ » ļ åĬ¨ ï¼Į è§¦ æĳ ¸ å±ı æĮī ä¸ĭ åĲİ ç§»åĬ¨ ĊĠĠĠ Ġoverride Ġfun Ġon Scroll ( e 1 : ĠMotion Event , Ġe 2 : ĠMotion Event , Ġdistance X : ĠFloat , Ġdistance Y : ĠFloat ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m I jk Video View . screen State Ġ== ĠController View Factory . FULL _ SCREEN _ MODE ) Ġ{ Ġ// åĪ¤æĸŃ æĺ¯åĲ¦ æĺ¯ åħ¨ å±ı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdown X Ġ= Ġe 1 . x ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactually Dy Ġ= Ġe 2 . y Ġ- Ġe 1 . y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactually Dx Ġ= Ġe 2 . x Ġ- Ġe 1 . x ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġabs Dy Ġ= Ġabs ( act ually Dy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġabs Dx Ġ= Ġabs ( act ually Dx ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å·¦ åı³ ç§»åĬ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( abs Dx Ġ>= ĠMIN _ SCROLL Ġ&& Ġabs Dx Ġ> Ġabs Dy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow MoveTo Position Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸Ĭä¸ĭ ç§»åĬ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( abs ( distance Y ) Ġ>= ĠMIN _ SCROLL Ġ&& Ġabs Dy Ġ> Ġabs Dx ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( down X Ġ<= Ġm Screen Height Ġ* Ġ 0 . 5 f ) Ġ{ Ġ// å·¦ è¾¹ ï¼Į æĶ¹åıĺ å£° éŁ³ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Volume Dialog ( distance Y ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ġ// åı³ è¾¹ æĶ¹åıĺ äº ® åº¦ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Light Dialog ( distance Y ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç§»åĬ¨ åĪ° çĽ¸åºĶ ä½įç½® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow MoveTo Position Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġ 2 0 1 8 / 2 / 2 6 Ġx wt Ġ ç§»åĬ¨ åĪ° çĽ¸åºĶ çļĦ ä½įç½® ĊĠĠĠĠĠĠĠ Ġis Show Position Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Cancel () Ġ{ ĊĠĠĠĠĠĠĠ Ġon Up () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġdismiss Light Dialog () ĊĠĠĠĠĠĠĠ Ġdismiss Volume Dialog () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// æīĭ åĬ¿ è¯ĨåĪ« ä¸Ń ä¸įéľĢè¦ģ ä½¿çĶ¨ çļĦæĸ¹æ³ķ ĊĠĠĠ Ġoverride Ġfun Ġon Long Press ( e : ĠMotion Event ?) Ġ{} ĊĊĠĠĠ Ġ// æīĭ åĬ¿ è¯ĨåĪ« ä¸Ń ä¸įéľĢè¦ģ ä½¿çĶ¨ çļĦæĸ¹æ³ķ ĊĠĠĠ Ġoverride Ġfun Ġon Fl ing ( e 1 : ĠMotion Event ?, Ġe 2 : ĠMotion Event ?, Ġvelocity X : ĠFloat , Ġvelocity Y : ĠFloat ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĺ¾ç¤º å£° éŁ³ æİ§åĪ¶ å¯¹ è¯Ŀ æ¡Ĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow Volume Dialog ( delta Y : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Show Volume Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ// è®°å½ķ æ»ĳ åĬ¨ æĹ¶åĢĻ å½ĵåīį çļĦ å£° éŁ³ ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Video Volume Ġ= Ġm Audio Manager . get Stream Volume ( Audio Manager . STREAM _ M US IC ) ĊĠĠĠĠĠĠĠ Ġval Ġmax Volume Ġ= Ġm Audio Manager . get Stream Max Volume ( Audio Manager . STREAM _ M US IC ) ĊĠĠĠĠĠĠĠ Ġif Ġ( delta Y Ġ< Ġ 0 ) Ġ{ Ġ// åĲĳ ä¸ĭ æ»ĳ åĬ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Video Volume -- ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ġ// åĲĳ ä¸ĭ æ»ĳ åĬ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Video Volume ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® å£° éŁ³ ĊĠĠĠĠĠĠĠ Ġm Audio Manager . set Stream Volume ( Audio Manager . STREAM _ M US IC , Ġcurrent Video Volume , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( m Volume Dialog Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . dialog _ volume _ controller , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Volume Progress Ġ= Ġview . findViewById ( R . id . pb _ volume _ progress ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Volume Dialog Ġ= Ġcreate Dialog With View ( view , ĠGr avity . START Ġor ĠGr avity . CENTER _ VERTICAL ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! m Volume Dialog !!. is Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Volume Dialog !!. show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® è¿Ľ åº¦ æĿ¡ ĊĠĠĠĠĠĠĠ Ġval Ġnext Volume Ġ= Ġm Audio Manager . get Stream Volume ( Audio Manager . STREAM _ M US IC ) ĊĠĠĠĠĠĠĠ Ġvar Ġvolume Percent Ġ= Ġ( next Volume Ġ* Ġ 1 f Ġ/ Ġmax Volume Ġ* Ġ 1 0 0 f ). toInt () ĊĠĠĠĠĠĠĠ Ġif Ġ( volume Percent Ġ> Ġ 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvolume Percent Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( volume Percent Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvolume Percent Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Volume Progress !!. progress Ġ= Ġvolume Percent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éļĲèĹı å£° éŁ³ å¯¹ è¯Ŀ æ¡Ĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdismiss Volume Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Volume Dialog Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Volume Dialog !!. dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Show Volume Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĺ¾ç¤º æİ§åĪ¶ äº ® åº¦ å¯¹ è¯Ŀ æ¡Ĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow Light Dialog ( delta Y : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Show Light Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġvar Ġscreen Brightness Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġ// è®°å½ķ æ»ĳ åĬ¨ åīį çļĦ äº ® åº¦ ĊĠĠĠĠĠĠĠ Ġval Ġlp Ġ= Ġget Window ( context ) !!. attributes ĊĠĠĠĠĠĠĠ Ġif Ġ( lp . screen Brightness Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Brightness Ġ= ĠSettings . System . getInt ( context . content Resolver , ĠSettings . System . SCREEN _ BR IGHT NESS ). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSetting NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Brightness Ġ= Ġlp . screen Brightness ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( delta Y Ġ< Ġ 0 ) Ġ{ Ġ// åĲĳ ä¸ĭ æ»ĳ åĬ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Brightness Ġ-= Ġ 0 . 0 3 f ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ġ// åĲĳ ä¸ĭ æ»ĳ åĬ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Brightness Ġ+= Ġ 0 . 0 3 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Brightness Ġ>= Ġ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . screen Brightness Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Brightness Ġ< Ġ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . screen Brightness Ġ= Ġ 0 . 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlp . screen Brightness Ġ= Ġscreen Brightness ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġget Window ( context ) !!. attributes Ġ= Ġlp ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® äº ® åº¦ çĻ¾ åĪĨ æ¯Ķ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Light Progress Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . dialog _ light _ controller , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Light Progress Ġ= Ġview . findViewById ( R . id . pb _ light _ progress ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Light Dialog Ġ= Ġcreate Dialog With View ( view , ĠGr avity . END Ġor ĠGr avity . CENTER _ VERTICAL ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! m Light Dialog !!. is Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Light Dialog ?. show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlight Percent Ġ= Ġ( screen Brightness Ġ* Ġ 1 0 0 f ). toInt () ĊĠĠĠĠĠĠĠ Ġm Light Progress ?. progress Ġ= Ġlight Percent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdismiss Light Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Light Dialog ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Light Dialog !!. dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Show Light Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® View ä¸İ ä½įç½® åĪĽå»º dialog ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlocal View Ġ åĨħå®¹ å¸ĥå±Ģ ĊĠĠĠĠ Ġ* Ġ@ param Ġgravity ĠĠ Ġ ä½įç½® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Dialog With View ( local View : ĠView ?, Ġgravity : ĠInt ): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDialog ( context , ĠR . style . Video Progress ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetContentView ( local View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Flags ( Window . FEATURE _ ACTION _ BAR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Flags ( WindowManager . LayoutParams . FLAG _ NOT _ TO UCH _ MOD AL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Flags ( WindowManager . LayoutParams . FLAG _ NOT _ FOCUS ABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Layout (- 2 , Ġ- 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Background Drawable ( Color Drawable ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocal LayoutParams Ġ= Ġattributes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal LayoutParams . gravity Ġ= Ġgravity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= Ġlocal LayoutParams ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è¿Ľåħ¥ åħ¨ å±ı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġenter FullScreen () Ġ{ ĊĠĠĠĠĠĠĠ Ġhide ActionBar ( context ) ĊĠĠĠĠĠĠĠ ĠgetActivity ( context ) !!. requested Orientation Ġ= ĠActivity Info . SCREEN _ OR IENTATION _ LAND SC APE ĊĠĠĠĠĠĠĠ Ġval Ġcontent View Ġ= ĠgetActivity ( context ) !!. findViewById < ViewGroup >( Window . ID _ ANDROID _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġm Parent Ġ= Ġparent Ġas ĠViewGroup ĊĠĠĠĠĠĠĠ Ġm Parent !!. remove View ( this ) ĊĠĠĠĠĠĠĠ Ġm I jk Video View . screen State Ġ= ĠController View Factory . FULL _ SCREEN _ MODE ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠLayout Params ( LayoutParams . MATCH _ PARENT , ĠLayout Params . MATCH _ PARENT ) ĊĠĠĠĠĠĠĠ Ġcontent View . addView ( this , Ġparams ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĢĢåĩº åħ¨ å±ı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġexit FullScreen () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow ActionBar ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġcontent View Ġ= ĠgetActivity ( context ) !!. findViewById < ViewGroup >( Window . ID _ ANDROID _ CONTENT ) ĊĠĠĠĠĠĠĠ ĠgetActivity ( context ) !!. requested Orientation Ġ= ĠActivity Info . SCREEN _ OR IENTATION _ POR TRA IT ĊĠĠĠĠĠĠĠ Ġcontent View . remove View ( this ) ĊĠĠĠĠĠĠĠ Ġm I jk Video View . screen State Ġ= ĠController View Factory . TIN Y _ MODE ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠLayout Params ( LayoutParams . WRAP _ CONTENT , ĠLayout Params . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġm Parent !!. addView ( this , Ġparams ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// //////////////////////////////////////////////////////////////////////// / ĊĠĠĠ Ġ// Ġ ä»£çĲĨ I jk Video View æĸ¹æ³ķ ĊĠĠĠ Ġ// //////////////////////////////////////////////////////////////////////// / ĊĊĠĠĠ Ġfun Ġset Video Path ( play Url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . set Video Path ( play Url ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Media Controller ( controller : ĠI jk Media Controller ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . set Media Controller ( controller ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtoggle AspectRatio ( current AspectRatio : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . toggle AspectRatio ( current AspectRatio ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On Prepared Listener ( on Prepared Listener : ĠI MediaPlayer . On Prepared Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . setOn Prepared Listener ( on Prepared Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset OnError Listener ( onError Listener : ĠI MediaPlayer . OnError Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . setOn Error Listener ( onError Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On Completion Listener ( on Completion Listener : ĠI MediaPlayer . On Completion Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . setOn Completion Listener ( on Completion Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop Playback () Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . stop Playback () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Playing (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm I jk Video View . is Playing ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpause () Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrelease ( clear Target State : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . release ( clear Target State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Error View (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġm Center Progress . handler . post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Center Progress . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm I jk Video View . get Media Controller () !!. show Error View () ĊĠĠĠĠĠĠĠ Ġ}, Ġ 1 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreset Type () Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . get Media Controller ()?. reset Type () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Dragging ( drag ging : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . get Media Controller () !!. controller View !!. is Dragging Ġ= Ġdragging ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Dragging (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm I jk Video View . get Media Controller () !!. controller View !!. is Dragging ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Controller All The Time () Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . get Media Controller ()?. show All The Time () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Duration (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm I jk Video View . duration ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Controller () Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . get Media Controller () !!. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġseek To ( m sec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm I jk Video View . seek To ( m sec ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ