package Ġcom . example . summary scape Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Progress Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . card view . widget . Card View Ċ import Ġcom . android . vol ley . Request Ċ import Ġcom . android . vol ley . Retry Policy Ċ import Ġcom . android . vol ley . Vol ley Error Ċ import Ġcom . android . vol ley . toolbox . Vol ley Ċ import Ġjava . io . File OutputStream ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġet YT Link : EditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbtn Summary : Card View ĊĠĠĠ Ġ/* ĠPut Ġyour ĠIP : Port Ġhere Ġof Ġwhere Ġyour ĠFlask Ġbackend Ġis Ġrunning Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġbackend IP Ġ= Ġ" http :// 1 9 2 . 1 6 8 . 1 . 6 " ĊĠĠĠ Ġ@ Suppress Lint (" Show Toast ") ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġet YT Link Ġ= ĠfindViewById ( R . id . et _ yt _ link ) ĊĠĠĠĠĠĠĠ Ġbtn Summary Ġ= ĠfindViewById ( R . id . btn _ summary ) ĊĠĠĠĠĠĠĠ Ġval Ġprogress Dialog Ġ= ĠProgress Dialog ( this ) ĊĠĠĠĠĠĠĠ Ġprogress Dialog . setMessage (" Processing Ġthe Ġvideo ...") ĊĊĠĠĠĠĠĠĠ Ġbtn Summary . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Button ", Ġ" Clicked ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġit . root View ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( et YT Link . text . isNotEmpty ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠInstantiate Ġthe ĠRequest Queue . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġqueue Ġ= ĠVol ley . new Request Queue ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserver URL Ġ= Ġbackend IP Ġ+ Ġ"/ ? link =" Ġ+ Ġet YT Link . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Inside ", Ġserver URL ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠInputStream Vol ley Request ( Request . Method . GET , Ġserver URL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO Ġhandle Ġthe Ġresponse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠoutputStream : ĠFileOutputStream ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġ" reference . mp 4 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠoutputStream Ġ= Ġopen File Output ( name , ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠoutputStream . write ( response ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" O output ", Ġresponse . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠoutputStream . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Status ", Ġ" Download Ġcomplete .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠPlay Video Ġ:: Ġclass . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO ĠAuto - generated Ġcatch Ġblock ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" KEY _ ERROR ", Ġ" UN ABLE ĠTO ĠDOWN LOAD ĠFILE ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror Ġ-> Ġ// ĠTODO Ġhandle Ġthe Ġerror ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . retry Policy Ġ= Ġobject Ġ: ĠRetry Policy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetCurrent Timeout (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 5 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetCurrent Retry Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 5 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Throws ( Vol ley Error :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġretry ( error : ĠVol ley Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġqueue . add ( request ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Please Ġenter Ġthe Ġlink !", ĠToast . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} Ċ }