package Ġorg . g aj an lee . s ail ors Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Environment Ċ import Ġandroid . support . design . widget . Floating ActionButton Ċ import Ġandroid . support . design . widget . Snackbar Ċ import Ġandroid . support . design . widget . Navigation View Ċ import Ġandroid . support . v 4 . view . Gravity Compat Ċ import Ġandroid . support . v 4 . widget . Drawer Layout Ċ import Ġandroid . support . v 7 . app . ActionBar Drawer Toggle Ċ import Ġandroid . support . v 7 . widget . Toolbar Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . ListView Ċ import Ġandroid . widget . Toast Ċ import Ġorg . g aj an lee . s ail ors . bus s . Base Activity Ċ import Ġorg . g aj an lee . s ail ors . bus s . Paper Ċ import Ġorg . g aj an lee . s ail ors . bus s . Paper Adapter Ċ import Ġcom . l zy . okhttp utils . Ok Http Utils Ċ import Ġcom . l zy . okhttp utils . callback . File Callback Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . Response Ċ import Ġorg . g aj an lee . s ail ors . bus s . Nav Base Activity Ċ import Ġjava . io . File Ċ Ċ class ĠDownload File CallBack s ( dest Dir : ĠString , Ġdest Name : ĠString ): ĠFile Callback ( dest Dir , Ġdest Name ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Response ( is From Cache : ĠBoolean , Ġt : ĠFile ?, Ġrequest : ĠRequest ?, Ġresponse : ĠResponse ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" d ", Ġ" download Ġdone ") ĊĠĠĠĠĠĠĠ Ġ// TODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠMainActivity Ġ: ĠNav Base Activity (), ĠNavigation View . On Navigation ItemSelected Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpaper List Ġ= ĠArrayList < Paper >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġval Ġtoolbar Ġ= ĠfindViewById ( R . id . toolbar ) Ġas ĠToolbar ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfab Ġ= ĠfindViewById ( R . id . fab ) Ġas ĠFloating ActionButton ĊĠĠĠĠĠĠĠ Ġfab . setOnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( view , Ġ" Replace Ġwith Ġyour Ġown Ġaction ", ĠSn ackbar . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction (" Action ", Ġnull ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdrawer Ġ= ĠfindViewById ( R . id . drawer _ layout ) Ġas ĠDraw er Layout ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Ġ= ĠAction Bar Drawer Toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġdrawer , Ġtoolbar , ĠR . string . navigation _ drawer _ open , ĠR . string . navigation _ drawer _ close ) ĊĠĠĠĠĠĠĠ Ġdrawer . set Drawer Listener ( toggle ) ĊĠĠĠĠĠĠĠ Ġtoggle . sync State () ĊĊĠĠĠĠĠĠĠ Ġval Ġnavigation View Ġ= ĠfindViewById ( R . id . nav _ view ) Ġas ĠNavigation View ĊĠĠĠĠĠĠĠ Ġnavigation View . set Navigation ItemSelected Listener ( this ) ĊĊĊĠĠĠĠĠĠĠ Ġpaper List . add ( Paper ( 1 , Ġ" h aha . pdf ", Ġ"/ data ", Ġ" ax iv ")) ĊĠĠĠĠĠĠĠ Ġpaper List . add ( Paper ( 2 0 , Ġ" h aha . pdf ", Ġ"/ data ", Ġ" ax iv ")) ĊĠĠĠĠĠĠĠ Ġpaper List . add ( Paper ( 1 0 , Ġ" h aha . pdf ", Ġ"/ data ", Ġ" ax iv ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠPaper Adapter ( this @ MainActivity , ĠR . layout . paper _ item , Ġpaper List ) ĊĠĠĠĠĠĠĠ Ġval ĠlistView Ġ= ĠfindViewById ( R . id . papers _ list ) Ġas ĠListView ĊĠĠĠĠĠĠĠ ĠlistView . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ ĠlistView . setOn ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent , Ġview , Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpaper Ġ= Ġpaper List . get ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , Ġpaper . name , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( position Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" path ", ĠEnvironment . get External Storage Directory (). path Ġ+ Ġ" temp ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOk Http Utils . get (" https :// arxiv . org / pdf / 1 8 0 5 . 0 2 2 2 0 . pdf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// . headers (" User - Agent ", Ġ" Mozilla / 5 . 0 Ġ( X 1 1 ; ĠU ; ĠLinux Ġi 6 8 6 ; Ġen - US ; Ġrv : 1 . 8 . 1 . 6 ) ĠGecko / 2 0 0 7 0 8 0 2 ĠSe a Mon key / 1 . 1 . 4 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tag ( this ). execute ( Download File CallBack s ( Environment . get External Storage Directory (). path Ġ+ Ġ"/ temp ", Ġ" test . pdf ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this @ MainActivity , ĠPreview Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" pdf _ url ", Ġ" https :// arxiv . org / pdf / 1 8 0 5 . 0 2 2 2 0 . pdf ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdrawer Ġ= ĠfindViewById ( R . id . drawer _ layout ) Ġas ĠDraw er Layout ĊĠĠĠĠĠĠĠ Ġif Ġ( drawer . is Drawer Open ( Gravity Compat . START )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġmenu ; Ġthis Ġadds Ġitems Ġto Ġthe Ġaction Ġbar Ġif Ġit Ġis Ġpresent . ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġaction Ġbar Ġitem Ġclicks Ġhere . ĠThe Ġaction Ġbar Ġwill ĊĠĠĠĠĠĠĠ Ġ// Ġautomatically Ġhandle Ġclicks Ġon Ġthe ĠHome / Up Ġbutton , Ġso Ġlong ĊĠĠĠĠĠĠĠ Ġ// Ġas Ġyou Ġspecify Ġa Ġparent Ġactivity Ġin ĠAndroid Manifest . xml . ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġitem . itemId ĊĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( id Ġ== ĠR . id . action _ settings ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġsuper . on Options ItemSelected ( item ) ĊĊĠĠĠ Ġ} ĊĊ Ċ } Ċ