package Ġcom . chr yn an . video . ui . activity Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġcom . chr yn an . video . R Ċ import Ġcom . chr yn an . video . model . Video Load Type Ċ import Ġcom . chr yn an . video . presentation . navigator . Deep Link Screen Ċ import Ġcom . chr yn an . video . utils . getFull MimeType Ċ import Ġjava . util .* Ċ Ċ class ĠDeep Link Activity Ġ: ĠBase Activity < Deep Link Screen >() Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS CHE ME _ FILE Ġ= Ġ" file " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS CHE ME _ CONTENT Ġ= Ġ" content " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS CHE ME _ HTTP Ġ= Ġ" http " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS CHE ME _ HTTPS Ġ= Ġ" https " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS CHE ME _ VIDEO Ġ= Ġ" video " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS CHE ME _ L BR Y Ġ= Ġ" l br y " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMIME _ TYPE _ START _ VIDEO Ġ= Ġ" video " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠQUERY _ PARAM _ PROVIDER _ URI Ġ= Ġ" provider _ uri " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠQUERY _ PARAM _ VIDEO _ ID Ġ= Ġ" video _ id " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠQUERY _ PARAM _ AUTO _ PLAY Ġ= Ġ" auto _ play " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠQUERY _ PARAM _ START Ġ= Ġ" start " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠQUERY _ PARAM _ END Ġ= Ġ" end " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= Ġintent ?. data ĊĠĠĠĠĠĠĠ Ġval Ġscheme Ġ= Ġuri ?. scheme ?. toLowerCase ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġval ĠmimeType Ġ= Ġuri ?. getFull MimeType ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġis Video MimeType Ġ= ĠmimeType Ġ!= Ġnull Ġ&& ĠmimeType . startsWith ( MIME _ TYPE _ START _ VIDEO ) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheme Ġ== ĠS CHE ME _ FILE Ġ&& Ġis Video MimeType Ġ-> Ġhandle Generic Content Uri ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheme Ġ== ĠS CHE ME _ CONTENT Ġ&& Ġis Video MimeType Ġ-> Ġhandle Generic Content Uri ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheme Ġ== ĠS CHE ME _ HTTP Ġ&& Ġis Video MimeType Ġ-> Ġhandle Generic Content Uri ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheme Ġ== ĠS CHE ME _ HTTPS Ġ&& Ġis Video MimeType Ġ-> Ġhandle Generic Content Uri ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheme Ġ== ĠS CHE ME _ VIDEO Ġ-> Ġhandle Open Video Uri ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheme Ġ== ĠS CHE ME _ L BR Y Ġ-> Ġhandle L br y Uri ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġhandle Unsupported Uri () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgo To ( screen : ĠDeep Link Screen ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Generic Content Uri ( uri : ĠUri ) Ġ= ĊĠĠĠĠĠĠĠ ĠstartActivity ( Video Player Activity . new Intent ( this , ĠVideo Load Type . Generic Content Uri ( uri ))) ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Open Video Uri ( uri : ĠUri ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprovider Uri Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuri . getQuery Parameter ( QUERY _ PARAM _ PROVIDER _ URI )?. let Ġ{ ĠUri . parse ( Uri . decode ( it )) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġvideo Id Ġ= Ġuri . getQuery Parameter ( QUERY _ PARAM _ VIDEO _ ID ) ĊĠĠĠĠĠĠĠ Ġval Ġauto Play Ġ= Ġuri . getQuery Parameter ( QUERY _ PARAM _ AUTO _ PLAY )?. to Boolean () Ġ?: Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġuri . getQuery Parameter ( QUERY _ PARAM _ START )?. to Long () ĊĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġuri . getQuery Parameter ( QUERY _ PARAM _ END )?. to Long () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( provider Uri Ġ!= Ġnull Ġ&& Ġvideo Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġload Type Ġ= ĠVideo Load Type . Open Video Uri ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovider Uri Ġ= Ġprovider Uri , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Id Ġ= Ġvideo Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauto Play Ġ= Ġauto Play , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġstart , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġend ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Video Player Activity . new Intent ( this , Ġload Type )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Unsupported Uri () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle L br y Uri ( uri : ĠUri ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Unsupported Uri () Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠR . string . uri _ unsupported _ message , ĠToast . LENGTH _ LONG ). show () ĊĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} Ċ }