package Ġc ah 5 9 3 wang . u water lo o . cs . student . https www . uw course Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics .* Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . content . res . Resources Compat Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . text . Text Paint Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . View Ċ import Ġandroid . widget .* Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . io . Object InputStream Ċ import Ġjava . io . Object OutputStream ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġvar Ġsection List Ġ= ĠArrayList < Section >() ĊĠĠĠ Ġvar Ġselected Sections Ġ= ĠArrayList < Section >() ĊĠĠĠ Ġlateinit Ġvar ĠimageView : ĠImageView ĊĠĠĠ Ġlateinit Ġvar Ġdisplay : ĠRecyclerView ĊĠĠĠ Ġlateinit Ġvar Ġcanvas : ĠCanvas ĊĠĠĠ Ġvar Ġpaint Ġ= ĠPaint () ĊĠĠĠ Ġvar Ġtext Paint Ġ= ĠText Paint () ĊĠĠĠ Ġlateinit Ġvar Ġbitmap : ĠBitmap ĊĠĠĠ Ġvar Ġrect Ġ= ĠRect () ĊĠĠĠ Ġvar Ġcourse Color Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġconflict Color Ġ= Ġ 0 ĊĠĠĠ Ġvar ĠbackgroundColor Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġaccent Color Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġgrey Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġwhite Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġblack Ġ= Ġ 0 ĊĊĠĠĠ Ġvar Ġwidth : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġheight : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġval Ġheader Size Ġ= Ġ 5 0 f ĊĠĠĠ Ġvar Ġsection Width Ġ= Ġ 0 ĊĠĠĠ Ġval Ġoffset Ġ= Ġ 2 5 f ĊĊĠĠĠ Ġ// handle Ġselected Ġsections Ġreturned Ġby Ġthe Ġsearch Ġresult Ġselection Ġactivity Ġ( Display Message Activity ) ĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠREQUEST _ CODE Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Entries Ġ= Ġdata ?. get Serializable Extra (" RESULT ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Entries Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// only Ġadd Ġit Ġif Ġwe Ġdon 't Ġalready Ġhave Ġa Ġcopy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( new Entries Ġas ĠArrayList < Section >). forEach Ġ{ Ġsec Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcontains Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsection List . forEach Ġ{ Ġowned Sec Ġ-> Ġif Ġ( owned Sec . class Num Ġ== Ġsec . class Num ) Ġcontains Ġ= Ġtrue } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! contains ) Ġsection List . add ( sec ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( request Code Ġ== ĠREQUEST _ CODE Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ C ANCE LED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdata ?. getString Extra (" RESULT ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġt : ĠToast ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! result . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt Ġ= ĠToast . makeText ( this , Ġresult , ĠToast . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// update Ġthe Ġcart Ġre cycler view ĊĠĠĠĠĠĠĠ Ġdisplay . adapter ?. notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// initialize Ġthe Ġcart Ġre cycler view ĊĠĠĠ Ġprivate Ġfun Ġinit Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġdisplay Ġ= ĠfindViewById ( R . id . class Sum ) ĊĠĠĠĠĠĠĠ Ġ// create Ġa Ġinstance Ġof Ġthe Ġcustom Ġadapter , Ġpass Ġit Ġall Ġthe Ġsections Ġin Ġthe Ġcart Ġalong Ġwith Ġthe Ġselected Ġones Ġ( m ight Ġbe Ġselected Ġform Ġsave Ġdata ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠHorizontal ListAdapter ( this , Ġsection List , Ġselected Sections , ĠView . OnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// listener Ġfor Ġwhen Ġa Ġview Ġis Ġselected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . isSelected Ġ= Ġview . isSelected Ġ!= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Cart Click ( view . findViewById < TextView >( R . id . lec TextView ). text . toString (), Ġview . isSelected ) ĊĠĠĠĠĠĠĠ Ġ}, ĠView . OnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// listener Ġfor Ġwhen Ġthe Ġx Ġis Ġclicked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex ToDelete Ġ= Ġget Index By Title (( view . parent Ġas ĠView ). findViewById < TextView >( R . id . lec TextView ). text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid ToRemove Ġ= Ġsection List [ index ToDelete ]. class Num ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// remove Ġit Ġfrom Ġthe Ġsection Ġset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsection List . remove At ( index ToDelete ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// if Ġit Ġwas Ġselected , Ġremove Ġit Ġfrom Ġthe Ġselected Ġset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġselected Sections . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( selected Sections [ i ]. class Num Ġ== Ġid ToRemove ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Sections . remove At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// update Ġthe Ġadapter Ġand Ġthe Ġgraphics ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay . adapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġredraw Canvas () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġval Ġlinear LayoutManager Ġ= Ġ ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġlinear LayoutManager . orientation Ġ= ĠLinearLayout . HORIZONTAL ĊĠĠĠĠĠĠĠ Ġdisplay . layout Manager Ġ= Ġlinear LayoutManager ĊĠĠĠĠĠĠĠ Ġdisplay . adapter Ġ= Ġadapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// processing Ġfor Ġwhenever Ġa Ġcart Ġsection Ġis Ġclicked ĊĠĠĠ Ġprivate Ġfun Ġprocess Cart Click ( lecture Info : ĠString , Ġselection : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// if Ġit Ġwas Ġthe Ġplace Ġholder Ġempty Ġitem , Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( section List . size Ġ== Ġ 0 ) Ġreturn ĊĠĠĠĠĠĠĠ Ġ// get Ġthe Ġindex Ġbased Ġon Ġthe Ġclass Ġnumber Ġcontained Ġinside Ġlect ure Info ĊĠĠĠĠĠĠĠ Ġval Ġindex Clicked Ġ= Ġget Index By Title ( lecture Info ) ĊĠĠĠĠĠĠĠ Ġif Ġ( selection ) Ġselected Sections . add ( section List [ index Clicked ]) ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsection Num Ġ= Ġsection List [ index Clicked ]. class Num ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġselected Sections . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( selected Sections [ i ]. class Num Ġ== Ġsection Num ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Sections . remove At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġredraw Canvas () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// get Ġthe Ġindex Ġof Ġthe Ġsection Ġwith Ġthe Ġgiven Ġclass Info ĊĠĠĠ Ġprivate Ġfun Ġget Index By Title ( class Info : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclass Num Ġ= Ġclass Info . split (" Ġ- Ġ" )[ 0 ] ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġsection List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( section List [ i ]. class Num Ġ== Ġclass Num . toInt ()) Ġreturn Ġi ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġ// load Ġsaved Ġdata ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfis 2 : ĠFileInputStream Ġ= Ġopen File Input (" cart . data ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis 2 Ġ= ĠObject InputStream ( fis 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsection List Ġ= Ġis 2 . read Object () Ġas ĠArrayList < Section > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis 2 . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfis 2 . close () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfis : ĠFileInputStream Ġ= Ġopen File Input (" selected . data ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġins Ġ= ĠObject InputStream ( fis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Sections Ġ= Ġins . read Object () Ġas ĠArrayList < Section > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġins . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfis . close () ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . button 3 ). setOnClickListener Ġ{ search Class ()} ĊĠĠĠĠĠĠĠ Ġ// setting Ġup Ġthe Ġcanvas Ġfor Ġthe Ġcal and ar Ġview ĊĠĠĠĠĠĠĠ ĠimageView Ġ= ĠfindViewById < ImageView >( R . id . canvas ) ĊĠĠĠĠĠĠĠ ĠimageView . view Tree Observer . add On Global Layout Listener Ġ{ Ġredraw Canvas () Ġ} ĊĠĠĠĠĠĠĠ Ġconflict Color Ġ= ĠResources Compat . getColor ( resources , ĠR . color . conflict , Ġnull ) ĊĠĠĠĠĠĠĠ Ġcourse Color Ġ= ĠResources Compat . getColor ( resources , ĠR . color . color Primary , Ġnull ) ĊĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠResources Compat . getColor ( resources , ĠR . color . color Middle , Ġnull ) ĊĠĠĠĠĠĠĠ Ġaccent Color Ġ= ĠResources Compat . getColor ( resources , ĠR . color . color Primary Dark , Ġnull ) ĊĠĠĠĠĠĠĠ Ġgrey Ġ= ĠResources Compat . getColor ( resources , ĠR . color . grey , Ġnull ) ĊĠĠĠĠĠĠĠ Ġwhite Ġ= ĠResources Compat . getColor ( resources , ĠR . color . white , Ġnull ) ĊĠĠĠĠĠĠĠ Ġblack Ġ= ĠResources Compat . getColor ( resources , ĠR . color . black , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= ĠbackgroundColor ĊĠĠĠĠĠĠĠ Ġtext Paint . type face Ġ= ĠResources Compat . getFont ( this , ĠR . font . se goe ) ĊĊĠĠĠĠĠĠĠ Ġ// initialize Ġthe Ġcart Ġre cycler Ġview Ġadapter ĊĠĠĠĠĠĠĠ Ġinit Adapter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// save Ġthe Ġdata ĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġf os : ĠFileOutputStream Ġ= Ġget ApplicationContext (). open File Output (" selected . data ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġf os 2 : ĠFileOutputStream Ġ= Ġget ApplicationContext (). open File Output (" cart . data ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġos Ġ= ĠObject OutputStream ( fos ) ĊĠĠĠĠĠĠĠ Ġval Ġos 2 Ġ= ĠObject OutputStream ( fos 2 ) ĊĠĠĠĠĠĠĠ Ġos . write Object ( selected Sections ) ĊĠĠĠĠĠĠĠ Ġos 2 . write Object ( section List ) ĊĠĠĠĠĠĠĠ Ġos . close () ĊĠĠĠĠĠĠĠ Ġf os . close () ĊĠĠĠĠĠĠĠ Ġos 2 . close () ĊĠĠĠĠĠĠĠ Ġf os 2 . close () ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// NN ĊĠĠĠ Ġ// redraw s Ġthe Ġcalendar Ġbased Ġon Ġthe Ġcurrent Ġselected Ġset ĊĠĠĠ Ġprivate Ġfun Ġredraw Canvas () Ġ{ ĊĠĠĠĠĠĠĠ Ġwidth Ġ= ĠimageView . width ĊĠĠĠĠĠĠĠ Ġheight Ġ= ĠimageView . height ĊĠĠĠĠĠĠĠ Ġif Ġ( width Ġ== Ġ 0 Ġ|| Ġheight Ġ== Ġ 0 ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġsection Width Ġ= Ġwidth / 6 ĊĠĠĠĠĠĠĠ Ġbitmap Ġ= ĠBitmap . create Bitmap ( width , Ġheight , ĠBitmap . Config . ARGB _ 8 8 8 8 ) ĊĠĠĠĠĠĠĠ ĠimageView . setImage Bitmap ( bitmap ) ĊĊĠĠĠĠĠĠĠ Ġ// drawing Ġthe Ġheader ĊĠĠĠĠĠĠĠ Ġcanvas Ġ= ĠCanvas ( bitmap ) ĊĠĠĠĠĠĠĠ Ġpaint . color = backgroundColor ĊĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( 0 f , 0 f , Ġwidth . toFloat (), Ġheight . toFloat (), Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġaccent Color ĊĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( 0 f , 0 f , width . toFloat (), Ġheader Size , 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Rect ( 0 f , 1 0 f , width . toFloat (), Ġheader Size , Ġpaint ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ 5 Ġweek days Ġ+ Ġ 2 Ġhalf Ġwidth Ġweek ends , Ġdraw s Ġthe Ġvertical Ġlines ĊĠĠĠĠĠĠĠ Ġvar Ġx Position Ġ= Ġsection Width / Ġ 2 . toFloat () ĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġgrey ĊĠĠĠĠĠĠĠ Ġ// s unday ĊĠĠĠĠĠĠĠ Ġcanvas . draw Line ( x Position , 0 f , x Position , Ġheight . toFloat (), Ġpaint ) ĊĠĠĠĠĠĠĠ Ġ// mon day ĊĠĠĠĠĠĠĠ Ġx Position Ġ+= Ġsection Width ĊĠĠĠĠĠĠĠ Ġcanvas . draw Line ( x Position , 0 f , x Position , Ġheight . toFloat (), Ġpaint ) ĊĠĠĠĠĠĠĠ Ġ// t uesday ĊĠĠĠĠĠĠĠ Ġx Position Ġ+= Ġsection Width ĊĠĠĠĠĠĠĠ Ġcanvas . draw Line ( x Position , 0 f , x Position , Ġheight . toFloat (), Ġpaint ) ĊĠĠĠĠĠĠĠ Ġ// wed nesday ĊĠĠĠĠĠĠĠ Ġx Position Ġ+= Ġsection Width ĊĠĠĠĠĠĠĠ Ġcanvas . draw Line ( x Position , 0 f , x Position , Ġheight . toFloat (), Ġpaint ) ĊĠĠĠĠĠĠĠ Ġ// th ursday ĊĠĠĠĠĠĠĠ Ġx Position Ġ+= Ġsection Width ĊĠĠĠĠĠĠĠ Ġcanvas . draw Line ( x Position , 0 f , x Position , Ġheight . toFloat (), Ġpaint ) ĊĠĠĠĠĠĠĠ Ġ// f riday ĊĠĠĠĠĠĠĠ Ġx Position Ġ+= Ġsection Width ĊĠĠĠĠĠĠĠ Ġcanvas . draw Line ( x Position , 0 f , x Position , Ġheight . toFloat (), Ġpaint ) ĊĊĠĠĠĠĠĠĠ Ġ// draw Ġhour Ġmarks , Ġhorizontal Ġline ĊĠĠĠĠĠĠĠ Ġval Ġy Step Ġ= Ġheight / 1 5 f ĊĠĠĠĠĠĠĠ Ġvar Ġy Position Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġtext Paint . color Ġ= Ġaccent Color ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġ 1 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy Position Ġ+= Ġy Step ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text (" 1 2 PM ", Ġ 1 0 f , Ġy Position - 5 , Ġtext Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġaccent Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( y Position Ġ> Ġheader Size ) Ġcanvas . draw Line ( 0 f , y Position , width . toFloat (), Ġy Position , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġgrey ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcanvas . draw Line ( 0 f , Ġ 5 0 f , Ġwidth . toFloat (), Ġheader Size , Ġpaint ) ĊĊĠĠĠĠĠĠĠ Ġtext Paint . color Ġ= Ġwhite ĊĠĠĠĠĠĠĠ Ġtext Paint . text Size Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ SP , Ġ 1 0 F , Ġresources . display Metrics ) ĊĠĠĠĠĠĠĠ Ġval Ġy Val Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ DIP , Ġ 1 2 F , Ġresources . display Metrics ) ĊĠĠĠĠĠĠĠ Ġx Position Ġ= Ġ 2 0 f ĊĠĠĠĠĠĠĠ Ġcanvas . draw Text (" Sun ", Ġx Position , Ġy Val , Ġtext Paint ) ĊĠĠĠĠĠĠĠ Ġx Position Ġ+= Ġsection Width * 3 / 4 ĊĠĠĠĠĠĠĠ Ġcanvas . draw Text (" Mon ", Ġx Position , Ġy Val , Ġtext Paint ) ĊĠĠĠĠĠĠĠ Ġx Position Ġ+= Ġsection Width ĊĠĠĠĠĠĠĠ Ġcanvas . draw Text (" Tue ", Ġx Position , Ġy Val , Ġtext Paint ) ĊĠĠĠĠĠĠĠ Ġx Position Ġ+= Ġsection Width ĊĠĠĠĠĠĠĠ Ġcanvas . draw Text (" Wed ", Ġx Position , Ġy Val , Ġtext Paint ) ĊĠĠĠĠĠĠĠ Ġx Position Ġ+= Ġsection Width ĊĠĠĠĠĠĠĠ Ġcanvas . draw Text (" Thu ", Ġx Position , Ġy Val , Ġtext Paint ) ĊĠĠĠĠĠĠĠ Ġx Position Ġ+= Ġsection Width ĊĠĠĠĠĠĠĠ Ġcanvas . draw Text (" Fri ", Ġx Position , Ġy Val , Ġtext Paint ) ĊĠĠĠĠĠĠĠ Ġx Position Ġ+= Ġsection Width * 3 / 4 ĊĠĠĠĠĠĠĠ Ġcanvas . draw Text (" Sat ", Ġx Position , Ġy Val , Ġtext Paint ) ĊĊĠĠĠĠĠĠĠ Ġ// drawing Ġthe Ġsections ĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġcourse Color ĊĠĠĠĠĠĠĠ Ġtext Paint . text Size Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ SP , Ġ 7 F , Ġresources . display Metrics ) ĊĠĠĠĠĠĠĠ Ġselected Sections . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġit . times . indices ) Ġ{ Ġdraw Section ( it , Ġi ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// detect Ġconflicts ĊĠĠĠĠĠĠĠ Ġ// map Ġfor Ġthe Ġtime Ġrange Ġto Ġthe Ġdays Ġof Ġweek Ġit Ġre pers ents ĊĠĠĠĠĠĠĠ Ġval Ġsection Map Ġ= ĠHashMap < Int , ĠString >() ĊĠĠĠĠĠĠĠ Ġvar Ġcounter Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= Ġconflict Color ĊĠĠĠĠĠĠĠ Ġval Ġtime Ranges Ġ= ĠArrayList < Int Range >( selected Sections . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġselected Sections . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsec Ġ= Ġselected Sections [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġsec . times . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sec . getTime ( x ) Ġ== Ġ" T BA " Ġ|| Ġsec . getTime ( x ) Ġ== Ġ"") Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Ranges . add ( Int Range ( sec . getStart Hour ( x ) Ġ* Ġ 6 0 Ġ+ Ġsec . getStart Min ( x ), Ġsec . getEnd Hour ( x ) Ġ* Ġ 6 0 Ġ+ Ġsec . getEnd Min ( x ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsection Map [ counter ] Ġ= Ġsec . getTime ( x ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcounter ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġtime Ranges . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġtime Ranges . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== Ġx ) Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( time Ranges [ i ]. contains ( time Ranges [ x ]. start ) Ġ|| Ġtime Ranges [ i ]. contains ( time Ranges [ x ]. end Inclusive )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ther es Ġan Ġintersect ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax Start Ġ= ĠMath . max ( time Ranges [ i ]. start , Ġtime Ranges [ x ]. start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmin End Ġ= ĠMath . min ( time Ranges [ i ]. end Inclusive , Ġtime Ranges [ x ]. end Inclusive ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Y Ġ= Ġ(( max Start Ġ- Ġ 7 * 6 0 f ) Ġ/ Ġ( 1 5 * 6 0 f ) Ġ* Ġheight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Y Ġ= Ġ(( min End Ġ- Ġ 7 * 6 0 f ) Ġ/ Ġ( 1 5 * 6 0 f ) Ġ* Ġheight ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( section Map [ i ]?. contains (" Su ") Ġ== Ġtrue Ġ&& Ġsection Map [ x ]?. contains (" Su ") Ġ== Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( 0 f , Ġstart Y , Ġ Ġsection Width / 2 f , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( section Map [ i ]?. contains (" M ") Ġ== Ġtrue Ġ&& Ġsection Map [ x ]?. contains (" M ") Ġ== Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( section Width / 2 f , Ġstart Y , Ġ Ġsection Width / 2 f Ġ+ Ġsection Width , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( section Map [ i ]?. contains (" Tu ") Ġ== Ġtrue Ġ&& Ġsection Map [ x ]?. contains (" Tu ") Ġ== Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( section Width / 2 f Ġ+ Ġsection Width , Ġstart Y , Ġ Ġsection Width / 2 f Ġ+ Ġ 2 * section Width , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( section Map [ i ]?. contains (" W ") Ġ== Ġtrue Ġ&& Ġsection Map [ x ]?. contains (" W ") Ġ== Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( section Width / 2 f Ġ+ Ġ 2 * section Width , Ġstart Y , Ġ Ġsection Width / 2 f Ġ+ Ġ 3 f * section Width , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( section Map [ i ]?. contains (" Th ") Ġ== Ġtrue Ġ&& Ġsection Map [ x ]?. contains (" Th ") Ġ== Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( section Width / 2 f Ġ+ Ġ 3 * section Width , Ġstart Y , Ġ Ġsection Width / 2 f Ġ+ Ġ 4 f * section Width , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( section Map [ i ]?. contains (" F ") Ġ== Ġtrue Ġ&& Ġsection Map [ x ]?. contains (" F ") Ġ== Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( section Width / 2 f Ġ+ Ġ 4 * section Width , Ġstart Y , Ġ Ġsection Width / 2 f Ġ+ Ġ 5 f * section Width , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( section Map [ i ]?. contains (" S ") Ġ== Ġtrue Ġ&& Ġsection Map [ x ]?. contains (" S ") Ġ== Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( section Width / 2 f Ġ+ Ġ 5 * section Width , Ġstart Y , ĠĠ 6 f * section Width , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// code Ġfor Ġdrawing Ġthe Ġgiven Ġsection Ġonto Ġthe Ġcalendar ĊĠĠĠ Ġprivate Ġfun Ġdraw Section ( section : ĠSection , Ġindex : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( section . times [ index ] Ġ== Ġ" T BA " Ġ|| Ġsection . times [ index ] Ġ== Ġ"") Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġstart Y Ġ= Ġ(( section . getStart Hour ( index )* 6 0 Ġ+ Ġsection . getStart Min ( index ) Ġ- Ġ 7 * 6 0 f ) Ġ/ Ġ( 1 5 * 6 0 f ) Ġ* Ġheight ) ĊĠĠĠĠĠĠĠ Ġval Ġend Y Ġ= Ġ(( section . getEnd Hour ( index )* 6 0 Ġ+ Ġsection . getEnd Min ( index ) Ġ- Ġ 7 * 6 0 f ) Ġ/ Ġ( 1 5 * 6 0 f ) Ġ* Ġheight ) ĊĊĠĠĠĠĠĠĠ Ġval Ġline Ġ= Ġ 2 0 f ĊĊĠĠĠĠĠĠĠ Ġif Ġ( section . times [ index ]. contains (" Su ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( 0 f , Ġstart Y , Ġsection Width / 2 f , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . className , Ġ 0 Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset , Ġtext Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . lec Title , Ġ 0 Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset Ġ+ Ġline , Ġtext Paint ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( section . times [ index ]. contains (" M ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( section Width / 2 f , Ġstart Y , Ġsection Width / 2 f Ġ+ Ġsection Width , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . className , Ġsection Width / 2 f Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset , Ġtext Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . lec Title , Ġsection Width / 2 f Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset Ġ+ Ġline , Ġtext Paint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( section . times [ index ]. contains (" Tu ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( section Width / 2 f Ġ+ Ġsection Width , Ġstart Y , Ġsection Width / 2 f Ġ+ Ġ 2 * section Width , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . className , Ġsection Width / 2 f Ġ+ Ġsection Width Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset , Ġtext Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . lec Title , Ġsection Width / 2 f Ġ+ Ġsection Width Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset Ġ+ Ġline , Ġtext Paint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( section . times [ index ]. contains (" W ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( section Width / 2 f Ġ+ Ġ 2 * section Width , Ġstart Y , Ġsection Width / 2 f Ġ+ Ġ 3 * section Width , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . className , Ġsection Width / 2 f Ġ+ Ġsection Width Ġ* Ġ 2 Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset , Ġtext Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . lec Title , Ġsection Width / 2 f Ġ+ Ġsection Width Ġ* Ġ 2 Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset Ġ+ Ġline , Ġtext Paint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( section . times [ index ]. contains (" Th ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( section Width / 2 f Ġ+ Ġ 3 * section Width , Ġstart Y , Ġsection Width / 2 f Ġ+ Ġ 4 * section Width , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . className , Ġsection Width / 2 f Ġ+ Ġsection Width Ġ* Ġ 3 Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset , Ġtext Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . lec Title , Ġsection Width / 2 f Ġ+ Ġsection Width Ġ* Ġ 3 Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset Ġ+ Ġline , Ġtext Paint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( section . times [ index ]. contains (" F ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( section Width / 2 f Ġ+ Ġ 4 * section Width , Ġstart Y , Ġsection Width / 2 f Ġ+ Ġ 5 * section Width , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . className , Ġsection Width / 2 f Ġ+ Ġsection Width Ġ* Ġ 4 Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset , Ġtext Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . lec Title , Ġsection Width / 2 f Ġ+ Ġsection Width Ġ* Ġ 4 Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset Ġ+ Ġline , Ġtext Paint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( section . times [ index ]. contains (" S ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Round Rect ( section Width / 2 f Ġ+ Ġ 5 * section Width , Ġstart Y , ĠĠ 6 f * section Width , Ġend Y , Ġ 1 0 f , Ġ 1 0 f , Ġpaint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . className , Ġsection Width / 2 f Ġ+ Ġsection Width Ġ* Ġ 5 Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset , Ġtext Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( section . lec Title , Ġsection Width / 2 f Ġ+ Ġsection Width Ġ* Ġ 5 Ġ+ Ġoffset , Ġstart Y Ġ+ Ġoffset Ġ+ Ġline , Ġtext Paint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// NN ĊĊĠĠĠ Ġ// formats Ġdata Ġand Ġpas set Ġit Ġto Ġthe ĠDisplay Message Activity ĊĠĠĠ Ġfun Ġsearch Class () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠDisplay Message Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġterm EditText Ġ= ĠfindViewById < EditText >( R . id . term EditText ) ĊĠĠĠĠĠĠĠ Ġval Ġterm Ġ= Ġterm EditText . text . toString () ĊĠĠĠĠĠĠĠ Ġvar Ġterm Formatted Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ// TODO Ġvalidate Ġthe Ġentered Ġinfo ĊĊĠĠĠĠĠĠĠ Ġ// handling Ġthe Ġ#### Ġformat Ġor Ġthe Ġ[ F WS ] ## Ġformat ĊĠĠĠĠĠĠĠ Ġif Ġ( Regex ("[ 0 - 9 ][ 0 - 9 ][ 0 - 9 ][ 0 - 9 ]"). matches ( term )) Ġterm Formatted Ġ= Ġterm . toInt () ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( Regex ("[ F WS ][ 0 - 9 ][ 0 - 9 ]"). matches ( term )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( term [ 0 ] Ġ== Ġ' F ') Ġterm Formatted Ġ= Ġ 1 0 0 0 Ġ+ Ġ 1 0 0 * term [ 1 ]. toString (). toInt () Ġ+ Ġ 1 0 Ġ* Ġterm [ 2 ]. toString (). toInt () Ġ+ Ġ 9 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( term [ 0 ] Ġ== Ġ' W ') Ġterm Formatted Ġ= Ġ 1 0 0 0 Ġ+ Ġ 1 0 0 * term [ 1 ]. toString (). toInt () Ġ+ Ġ 1 0 Ġ* Ġterm [ 2 ]. toString (). toInt () Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( term [ 0 ] Ġ== Ġ' S ') Ġterm Formatted Ġ= Ġ 1 0 0 0 Ġ+ Ġ 1 0 0 * term [ 1 ]. toString (). toInt () Ġ+ Ġ 1 0 Ġ* Ġterm [ 2 ]. toString (). toInt () Ġ+ Ġ 5 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcourse EditText Ġ= ĠfindViewById < EditText >( R . id . course Code Edit Test ) ĊĠĠĠĠĠĠĠ Ġval Ġcourse String Ġ= Ġcourse EditText . text ĊĠĠĠĠĠĠĠ Ġif Ġ( course String . isNull OrEmpty ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġcourse Ġ= Ġcourse EditText . text . toString () ĊĠĠĠĠĠĠĠ Ġcourse EditText . setText ("") ĊĊĠĠĠĠĠĠĠ Ġval Ġdep EditText Ġ= ĠfindViewById < EditText >( R . id . department EditText ) ĊĠĠĠĠĠĠĠ Ġval Ġdep Ġ= Ġdep EditText . text . toString () ĊĠĠĠĠĠĠĠ Ġif Ġ( dep . isEmpty ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġdep EditText . setText ("") ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( DEP , Ġdep . toUpperCase ()) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( CO URSE _ NUM , Ġcourse ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( TERM , Ġterm Formatted ) ĊĠĠĠĠĠĠĠ Ġif Ġ( term Formatted Ġ!= Ġ 0 ) ĠstartActivity For Result ( intent , ĠREQUEST _ CODE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDEP Ġ= Ġ" DEP " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCO URSE _ NUM Ġ= Ġ" CO URSE _ NUM " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTER M Ġ= Ġ" TERM " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠREQUEST _ CODE Ġ= Ġ 8 0 1 1 ĊĠĠĠ Ġ} Ċ }