package Ġcom . course . experiment third Ċ Ċ import Ġandroid . app . ActionBar Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . course . experiment third . datasource . Course Contract Ċ import Ġcom . course . experiment third . datasource . Course Db Helper Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġre cyclerView : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm LL Week Title : ĠLinearLayout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlayout Manager : ĠRecyclerView . LayoutManager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Db : ĠSQLite Database ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Course : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Teacher : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Location : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Adapter : ĠMy Adapter ĊĠĠĠ Ġprivate Ġval Ġweek Days Ġ= ĠarrayOf (" åĳ¨ ä¸Ģ ", Ġ" åĳ¨ äºĮ ", Ġ" åĳ¨ ä¸ī ", Ġ" åĳ¨ åĽĽ ", Ġ" åĳ¨ äºĶ ", Ġ" åĳ¨ åħŃ ", Ġ" åĳ¨ æĹ¥ ") ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġval ĠmContext Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġre cyclerView Ġ= ĠfindViewById ( R . id . rv _ grid ) ĊĠĠĠĠĠĠĠ Ġm LL Week Title Ġ= ĠfindViewById ( R . id . ll _ week _ title ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . set BackgroundColor ( getColor ( R . color . m White )) ĊĠĠĠĠĠĠĠ Ġ// Ġæ·»åĬł è¡¨ å¤´ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil ĠMy Values . week Display Num ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . inflate ( mContext , ĠR . layout . item _ weekday _ index , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( v . findViewById < View >( R . id . tv _ weekday ) Ġas ĠTextView ). text Ġ= Ġweek Days [ i ] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalendar : ĠCalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst DayOfWeek : ĠInt Ġ= Ġcalendar . first DayOfWeek ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . DAY _ OF _ WEEK , Ġfirst DayOfWeek Ġ+ Ġi Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsdf Ġ= ĠSimpleDateFormat (" MM - dd ", ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( v . findViewById < View >( R . id . tv _ date ) Ġas ĠTextView ). text Ġ= Ġsdf . format ( calendar . time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm LL Week Title . addView ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayout . LayoutParams ( 0 , ĠAction Bar . LayoutParams . WRAP _ CONTENT , Ġ 3 F ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdb Helper Ġ= ĠCourse Db Helper ( mContext ) ĊĠĠĠĠĠĠĠ Ġm Db Ġ= Ġdb Helper . writable Database ĊĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= ĠgetAll Guest s () ĊĠĠĠĠĠĠĠ Ġval Ġm Listener Ġ= Ġobject Ġ: ĠMy Adapter . On Item Clicked Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( pos : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġshow Ġdialog ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmy Dialog Ġ= ĠMy Dialog ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Dialog . set Card Info ( object Ġ: ĠMy Dialog . Card Info Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Info ( course : ĠString , Ġteacher : ĠString , Ġlocation : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Course Ġ= Ġcourse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Teacher Ġ= Ġteacher ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Location Ġ= Ġlocation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Dialog . set Cancel ( object Ġ: ĠMy Dialog . I On Cancel Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancel ( my Dialog : ĠMy Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Dialog . set Remove ( object Ġ: ĠMy Dialog . I On Remove Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Remove ( my Dialog : ĠMy Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Course ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . swap Cursor ( getAll Guest s ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Dialog . set Confirm ( object Ġ: ĠMy Dialog . I On Confirm Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Confirm ( my Dialog : ĠMy Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ä¸įèĥ½ åħ¨ ä¸ºç©º ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Course Ġ== Ġ"" Ġ|| Ġm Teacher Ġ== Ġ"" Ġ|| Ġm Location Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Course ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . swap Cursor ( getAll Guest s ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Dialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠGrid LayoutManager ( mContext , Ġ 3 Ġ* ĠMy Values . week Display Num Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ( layout Manager Ġas ĠGrid LayoutManager ). span Size Lookup Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠGrid LayoutManager . Span Size Lookup () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Span Size ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( position Ġ% Ġ( My Values . week Display Num Ġ+ Ġ 1 ) Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠMy Adapter ( mContext , Ġcursor , Ġm Listener ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġm Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetAll Guest s (): ĠCursor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Db . query ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCourse Contract . Course Entry . TABLE _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCourse Contract . Course Entry . COLUMN _ CO URSE _ INDEX ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd New Course ( pos : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcv Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġcv . put ( Course Contract . Course Entry . COLUMN _ CO URSE _ INDEX , Ġpos ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Course Contract . Course Entry . COLUMN _ CO URSE _ NAME , Ġm Course ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Course Contract . Course Entry . COLUMN _ TE AC HER _ NAME , Ġm Teacher ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Course Contract . Course Entry . COLUMN _ LOCATION , Ġm Location ) ĊĠĠĠĠĠĠĠ Ġm Db . insert ( Course Contract . Course Entry . TABLE _ NAME , Ġnull , Ġcv ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Course ( pos : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcv Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġcv . put ( Course Contract . Course Entry . COLUMN _ CO URSE _ NAME , Ġm Course ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Course Contract . Course Entry . COLUMN _ TE AC HER _ NAME , Ġm Teacher ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Course Contract . Course Entry . COLUMN _ LOCATION , Ġm Location ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Course Contract . Course Entry . COLUMN _ CO URSE _ INDEX , Ġpos ) ĊĠĠĠĠĠĠĠ Ġm Db . update ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCourse Contract . Course Entry . TABLE _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcv , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Course Contract . Course Entry . COLUMN _ CO URSE _ INDEX } Ġ= Ġ?", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( pos . toString ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ