/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . dj . app . web debugger . library . websocket . server . media Ċ Ċ import Ġcom . dj . app . web debugger . library . Web Debugger Ċ import Ġcom . dj . app . web debugger . library . Web Debugger . Companion . media Observable Ċ import Ġcom . dj . app . web debugger . library . annotation . Controller Ċ import Ġcom . dj . app . web debugger . library . utils . File Util Ċ import Ġcom . dj . app . web debugger . library . websocket . server . WS Controller Ċ import Ġfi . iki . el onen . Nano HTTP D Ċ import Ġfi . iki . el onen . Nano W SD Ċ import Ġjava . io . IOException Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ /** Ċ Ġ* ĠCreate Ġby ĠChen Le i Ġon Ġ 2 0 1 9 / 1 0 / 3 1 Ċ Ġ* ĠDescribe : Ġ çĽĳåĲ¬ æ·»åĬł åªĴ ä½ĵ ç¼ĵåŃĺ æĸĩä»¶çļĦ WebSocket Ċ Ġ*/ Ċ @ Controller ("/ media / add ") Ċ internal Ġclass ĠMedia WS Controller ( handle : ĠN ano HTTP D . I HTTP Session ) Ġ: ĠWS Controller ( handle ), ĠObserver Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġfile Cache List Ġ= ĠArrayList < String >() ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( o : ĠObservable ?, Ġarg : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isOpen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Path Ġ= ĠFile Util . get Media Cache File ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cache Path . isDirectory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArrayList < String >( cache Path . list Files (). map Ġ{ ĠFile Util . get Media Cache Path () Ġ+ Ġit . name Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åıĳçĶŁ æ·»åĬł çļĦæĸĩä»¶ åĲįç§° ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadd List Ġ= Ġc . filter Ġ{ Ġ! file Cache List . contains ( it ) Ġ}. sorted () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Of Json ( Media List Bean ( Web Debugger . resource Port , Ġadd List )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Cache List . addAll ( add List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Open () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcache Path Ġ= ĠFile Util . get Media Cache File ( context !! ) ĊĠĠĠĠĠĠĠ Ġif Ġ( cache Path . isDirectory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Cache List . addAll ( cache Path . list Files (). map Ġ{ ĠFile Util . get Media Cache Path () Ġ+ Ġit . name Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Of Json ( Media List Bean ( Web Debugger . resource Port , Ġfile Cache List . sorted ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmedia Observable . add Observer ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClose ( ĊĠĠĠĠĠĠĠ Ġcode : ĠN ano W SD . WebSocket Frame . Close Code ?, ĊĠĠĠĠĠĠĠ Ġreason : ĠString ?, ĊĠĠĠĠĠĠĠ Ġinitiated By Remote : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Observable . delete Observer ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon P ong ( p ong : ĠN ano W SD . WebSocket Frame ?) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Message ( message : ĠN ano W SD . WebSocket Frame ?) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Exception ( exception : ĠIOException ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġmedia Observable . delete Observer ( this ) ĊĠĠĠ Ġ} Ċ Ċ }