package Ġcom . d roid h ats . camp us compass . views Ċ Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Gravity Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Image Button Ċ import Ġandroid . widget . Table Layout Ċ import Ġandroid . widget . TableRow Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . view . Gravity Compat Ċ import Ġandroidx . drawer layout . widget . Drawer Layout Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . view pager 2 . adapter . Fragment State Adapter Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 Ċ import Ġcom . d roid h ats . camp us compass . R Ċ import Ġcom . d roid h ats . camp us compass . view models . Shut tle ViewModel Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ import Ġcom . google . android . material . tabs . Tab Layout Mediator Ċ Ċ class ĠSh ut tle Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġshut tle Adapter : ĠSh ut tle Adapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠSh ut tle ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġview Pager : ĠView Pager 2 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġinflater . inflate ( R . layout . sh ut tle _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġside Drawer Button : ĠImage Button Ġ= Ġroot . findViewById ( R . id . button _ menu ) ĊĠĠĠĠĠĠĠ Ġside Drawer Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). findViewById < Drawer Layout >( R . id . drawer _ layout ). open Drawer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity Compat . START ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġroot ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( this ). get ( Shut tle ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġshut tle Adapter Ġ= ĠSh ut tle Adapter ( this ) ĊĠĠĠĠĠĠĠ Ġview Pager Ġ= Ġview . findViewById ( R . id . pager ) ĊĠĠĠĠĠĠĠ Ġview Pager . adapter Ġ= Ġshut tle Adapter ĊĊĠĠĠĠĠĠĠ Ġval Ġtab Layout : ĠTab Layout Ġ= Ġview . findViewById ( R . id . tab _ layout ) ĊĠĠĠĠĠĠĠ ĠTab Layout Mediator ( tab Layout , Ġview Pager ) Ġ{ Ġtab , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab . text Ġ= Ġ" SG W ĠTO ĠLO Y " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab . text Ġ= Ġ" LOY ĠTO ĠS GW " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. attach () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSh ut tle Adapter ( fragment : ĠFragment ) Ġ: ĠFragment State Adapter ( fragment ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġ 2 Ġ// Ġ 1 . SG W ĠTO ĠLO Y , Ġ 2 . LOY ĠTO ĠS GW ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Fragment ( position : ĠInt ): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠCamp us Tab Fragment () ĊĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( ARG _ OBJECT , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġconst Ġval ĠARG _ OBJECT Ġ= Ġ" object " Ċ Ċ class ĠCamp us Tab Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠSh ut tle ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġroot : ĠView ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġroot Ġ= Ġinflater . inflate ( R . layout . sh ut tle _ camp us _ tab , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġroot ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( this ). get ( Shut tle ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġarguments ?. take If Ġ{ Ġit . containsKey ( ARG _ OBJECT ) Ġ} ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( getInt ( ARG _ OBJECT ) Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobserve SG W Shut tle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobserve LOY Shut tle () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserve SG W Shut tle () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . get SG W Shut tle Time (). observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġs gw Shut tle Times Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġroot . findViewById < Table Layout >( R . id . sh ut tle Times Table ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dataRow Ġin Ġs gw Shut tle Times ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtable Row Ġ= ĠTable Row ( root . context ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġday Text Ġ= ĠTextView ( root . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday Text . text Ġ= Ġdata Row . sh ut tle _ day ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Text Ġ= ĠTextView ( root . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Text . text Ġ= Ġdata Row . sh ut tle _ time ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday Text . gravity Ġ= ĠGr avity . CENTER _ HORIZONTAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday Text . type face Ġ= ĠType face . DEFAULT _ BOLD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Text . gravity Ġ= ĠGr avity . CENTER _ HORIZONTAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Text . type face Ġ= ĠType face . DEFAULT _ BOLD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable Row . set Padding ( 0 , Ġ 2 5 , Ġ 0 , 2 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Text . setBackground Resource ( R . color . color Shut tle Row ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable Row . addView ( day Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable Row . addView ( time Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable . addView ( table Row ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserve LOY Shut tle () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . get Lo y ola Shut tle Time (). observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġlo y Shut tle Times Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtable Ġ= Ġroot . findViewById < Table Layout >( R . id . sh ut tle Times Table ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dataRow Ġin Ġlo y Shut tle Times ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtable Row Ġ= ĠTable Row ( root . context ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġday Text Ġ= ĠTextView ( root . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday Text . text Ġ= Ġdata Row . sh ut tle _ day ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Text Ġ= ĠTextView ( root . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Text . text Ġ= Ġdata Row . sh ut tle _ time ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday Text . gravity Ġ= ĠGr avity . CENTER _ HORIZONTAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġday Text . type face Ġ= ĠType face . DEFAULT _ BOLD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Text . gravity Ġ= ĠGr avity . CENTER _ HORIZONTAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Text . type face Ġ= ĠType face . DEFAULT _ BOLD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable Row . set Padding ( 0 , Ġ 2 5 , Ġ 0 , 2 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Text . setBackground Resource ( R . color . color Shut tle Row ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable Row . addView ( day Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable Row . addView ( time Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable . addView ( table Row ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } ĊĊ