package Ġcom . easy fitness . programs Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . media . MediaPlayer Ċ import Ġandroid . media . Ring tone Manager Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . view .* Ċ import Ġandroid . view . View .* Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget .* Ċ import Ġandroid . widget . Adapter View . On ItemClickListener Ċ import Ġandroidx . core . view . get Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . commit Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġcn . ped ant . S weet Alert . S weet AlertDialog Ċ import Ġcom . easy fitness . Btn ClickListener Ċ import Ġcom . easy fitness . DAO .* Ċ import Ġcom . easy fitness . DAO . DA OM achine .* Ċ import Ġcom . easy fitness . R Ċ import Ġcom . easy fitness . Settings Fragment Ċ import Ġcom . easy fitness . Time Picker Dialog Fragment Ċ import Ġcom . easy fitness . databinding . Tab Program Runner Binding Ċ import Ġcom . easy fitness . machines . Exercise Details Pager Ċ import Ġcom . easy fitness . machines . Machine Cursor Adapter Ċ import Ġcom . easy fitness . utils . Date Converter Ċ import Ġcom . easy fitness . utils . Image Util Ċ import Ġcom . easy fitness . utils . Unit Converter Ċ import Ġcom . fit work out fast . MainActivity Ċ import Ġcom . ik ov ac . time picker with seconds . My Time Picker Dialog Ċ import Ġcom . ik ov ac . time picker with seconds . Time Picker Ċ import Ġcom . on ur k ag anal dem ir . k toast lib . K Toast Ċ import Ġcom . pac ific . timer . Rx 2 Timer Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . io . IOException Ċ import Ġjava . text . Decimal Format Ċ import Ġjava . text . ParseException Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġkotlin . text .* Ċ Ċ class ĠProgram Runner Ġ: ĠFragment ( R . layout . tab _ program _ runner ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġprogress Scale Fix : ĠInt Ġ= Ġ 3 ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmain Activity : ĠMainActivity ĊĠĠĠ Ġprivate Ġvar Ġl Table Color Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġvar Ġmachine List Dialog : ĠAlertDialog ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġselected Type Ġ= ĠTYPE _ F ON TE ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdao Program : ĠDAO Program ĊĠĠĠ Ġprivate Ġvar Ġprogram Id : ĠLong Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġvar Ġcurrent Exercise Order Ġ= Ġ 0 Ġ Ġ// start Ġfrom Ġ 0 ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġexercises From Program : ĠList < Exercise In Program > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdao Record : ĠDAO Record ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġstrength Records Dao : ĠDA OF ont e ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdao Card io : ĠDAO Card io ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdao Static : ĠDAO Static ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdao Exercise In Program : ĠDAO Exercise In Program ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Db Machine : ĠDA OM achine ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġswipe Detector Listener : ĠSw ipe Detector Listener ĊĠĠĠ Ġprivate Ġvar Ġrest Timer : ĠRx 2 Timer ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġstatic Timer : ĠRx 2 Timer ĊĠĠĠ Ġprivate Ġvar Ġstatic Timer Running : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġrest Timer Running : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠTab Program Runner Binding ? Ġ= Ġnull ĊĠĠĠ Ġ// ĠThis Ġproperty Ġis Ġonly Ġvalid Ġbetween ĠonCreate View Ġand ĊĠĠĠ Ġ// Ġon Destroy View . ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠTab Program Runner Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Suppress Lint (" Click ableView Accessibility ") ĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ// ĠInitialization Ġof Ġthe Ġdatabase ĊĠĠĠĠĠĠĠ Ġdao Program Ġ= ĠDAO Program ( context ) ĊĠĠĠĠĠĠĠ Ġdao Record Ġ= ĠDAO Record ( context ) ĊĠĠĠĠĠĠĠ Ġstrength Records Dao Ġ= ĠDA OF ont e ( context ) ĊĠĠĠĠĠĠĠ Ġdao Card io Ġ= ĠDAO Card io ( context ) ĊĠĠĠĠĠĠĠ Ġdao Static Ġ= ĠDAO Static ( context ) ĊĠĠĠĠĠĠĠ Ġm Db Machine Ġ= ĠDA OM achine ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġshared Preferences Ġ= ĠPreference Manager . getDefault SharedPreferences ( activity ) ĊĠĠĠĠĠĠĠ Ġval Ġprograms Ġ= Ġdao Program . all Programs Names ĊĠĠĠĠĠĠĠ Ġdao Exercise In Program Ġ= ĠDAO Exercise In Program ( require Context ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( programs Ġ== Ġnull Ġ|| Ġprograms . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprofile Id : ĠLong ? Ġ= Ġ( require Activity () Ġas ĠMainActivity ). current Profile ?. id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprograms Fragment Ġ= ĠPro grams Fragment . newInstance ("", Ġprofile Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , ĠR . string . add _ program _ first , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). support FragmentManager . commit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaddTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( R . id . fragment _ container , Ġprograms Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprogram First Ġ= Ġdao Program . get Record ( programs [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( program First Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogram Id Ġ= Ġrequire Context (). get SharedPreferences (" current Program ", ĠContext . MODE _ PRIVATE ). getLong (" current Program ", Ġprogram First . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Position Ġ= Ġrequire Context (). get SharedPreferences (" current Program Position ", ĠContext . MODE _ PRIVATE ). getInt (" current Program Position ", Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠArray Adapter ( require Context (), Ġandroid . R . layout . simple _ spinner _ item , Ġprograms ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . program Select . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( temp Position Ġ< Ġprograms . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . program Select . setSelection ( temp Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . program Select . on ItemSelected Listener Ġ= Ġobject Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAdapter View . On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View <* >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview : ĠView ?, Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprogram : ĠProgram ? Ġ= Ġdao Program . get Record ( programs [ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( program Ġ!= Ġnull Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogram Id Ġ= Ġprogram . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Exercise Order Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexercises From Program Ġ= Ġdao Exercise In Program . getAll Exercise In Program ( program Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( exercises From Program . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . exercise Indicator . init Dot s ( exercises From Program . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . exercise In Program Number . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexercises From Program . size . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . exercise Indicator . set Dot Selection ( current Exercise Order ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . current Exercise Number . text Ġ= Ġ" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave To Preference (" current Program ", Ġprogram Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave To Preference (" current Program Position ", Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . program _ selection ) Ġ+ Ġ" Ġ" Ġ+ Ġprograms [ position ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprofile Id : ĠLong ? Ġ= Ġ( require Activity () Ġas ĠMainActivity ). current Profile ?. id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprograms Fragment Ġ= ĠPro grams Fragment . newInstance ("", Ġprofile Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). support FragmentManager . commit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaddTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( R . id . fragment _ container , Ġprograms Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( parent : ĠAdapter View <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġswipe Detector Listener Ġ= ĠSw ipe Detector Listener ( this ) ĊĠĠĠĠĠĠĠ Ġm Db Machine Ġ= ĠDA OM achine ( context ) ĊĠĠĠĠĠĠĠ Ġselected Type Ġ= ĠTYPE _ F ON TE ĊĠĠĠĠĠĠĠ Ġbinding . image Exercise Thumb . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġm Db Machine . get Machine ( binding . exercise Edit . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprofile Id : ĠLong ? Ġ= Ġ( require Activity () Ġas ĠMainActivity ). current Profile ?. id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmachine Details Fragment Ġ= ĠExercise Details Pager . newInstance ( m . id , Ġprofile Id !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). support FragmentManager . commit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaddTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( R . id . fragment _ container , Ġmachine Details Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . next Exercise Arrow . setOnClickListener ( click Ar rows ) ĊĠĠĠĠĠĠĠ Ġbinding . previous Exercise Arrow . setOnClickListener ( click Ar rows ) ĊĠĠĠĠĠĠĠ Ġbinding . add Button . setOnClickListener ( click Add Button ) ĊĠĠĠĠĠĠĠ Ġbinding . fail Button . setOnClickListener ( click Fail Button ) ĊĠĠĠĠĠĠĠ Ġbinding . exercises List Button . setOnClickListener ( onClick Machine List With Icons ) ĊĠĠĠĠĠĠĠ Ġbinding . duration Edit . setOnClickListener ( click Date Edit ) ĊĠĠĠĠĠĠĠ Ġbinding . exercise Edit . setOn Key Listener ( check Exercise Exists ) ĊĠĠĠĠĠĠĠ Ġbinding . exercise Edit . on ItemClickListener Ġ= Ġon Item Click Filter List ĊĊĠĠĠĠĠĠĠ Ġbinding . rest Time Edit . on Focus ChangeListener Ġ= Ġrest Time Edit Change ĊĠĠĠĠĠĠĠ Ġrestore Shared Params () ĊĠĠĠĠĠĠĠ Ġvar Ġweight Unit Ġ= ĠUnit Converter . UNIT _ KG ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweight Unit Ġ= Ġshared Preferences . getString ( Settings Fragment . WEIGHT _ UNIT _ PARAM , Ġ" 0 ") ?. toInt () !! ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" Not Ġimportant ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . unit Show . text Ġ= ĠgetString ( R . string . kg ) ĊĠĠĠĠĠĠĠ Ġif Ġ( weight Unit Ġ== ĠUnit Converter . UNIT _ L BS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . unit Show . text Ġ= ĠgetString ( R . string . L bs ) ĊĠĠĠĠĠĠĠ Ġval Ġdistance Unit : ĠInt Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshared Preferences . getString ( Settings Fragment . DISTANCE _ UNIT _ PARAM , Ġ" 0 ") ?. toInt () !! ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUnit Converter . UNIT _ KM ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . unit Distance Spinner . setSelection ( distance Unit ) ĊĊĠĠĠĠĠĠĠ Ġval Ġp oids Edit Change Ġ= ĠOn Focus ChangeListener Ġ{ Ġ_: ĠView ?, Ġhas Focus : ĠBoolean Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . save Weight . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . p oids Edit . on Focus ChangeListener Ġ= Ġp oids Edit Change ĊĠĠĠĠĠĠĠ Ġbinding . save Weight . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweight ToUpdate Ġ= Ġbinding . p oids Edit . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweight T Store Ġ= Ġweight ToUpdate . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( exercises From Program . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdao Exercise In Program . update String ( exercises From Program [ current Exercise Order ], ĠDAO Exercise In Program . WEIGHT , Ġweight T Store . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , ĠgetString ( R . string . saved _ into _ program ) Ġ+ Ġ" Ġ" Ġ+ Ġweight T Store , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . save Weight . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" Not Ġsaved ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . notes In Exercise . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( exercises From Program . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Note () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġre ps Edit Change Ġ= ĠOn Focus ChangeListener Ġ{ Ġ_: ĠView ?, Ġhas Focus : ĠBoolean Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . save Re ps . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . reps Picker . on Focus ChangeListener Ġ= Ġre ps Edit Change ĊĠĠĠĠĠĠĠ Ġbinding . save Re ps . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġre ps ToUpdate Ġ= Ġbinding . reps Picker . progress . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( exercises From Program . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdao Exercise In Program . update String ( exercises From Program [ current Exercise Order ], ĠDAO Exercise In Program . RE PET ITION , Ġre ps ToUpdate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , ĠgetString ( R . string . saved _ into _ program ) Ġ+ Ġ" Ġ" Ġ+ Ġre ps ToUpdate , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . save Re ps . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" Not Ġsaved ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . exercise Indicator . on Select Listener Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoose Exercise ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( require Context (). get SharedPreferences (" swipe Gest ures Switch ", ĠContext . MODE _ PRIVATE ). getBoolean (" swipe Gest ures Switch ", Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . record List . setOn Touch Listener ( swipe Detector Listener ) Ġ// this Ġis Ġdifferent Ġview Ġso Ġrequire Ġseparate Ġlistener Ġto Ġwork ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tab Program Runner . setOn Touch Listener ( swipe Detector Listener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchoose Exercise ( selected : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Exercise Order Ġ= Ġselected ĊĠĠĠĠĠĠĠ Ġbinding . current Exercise Number . text Ġ= Ġ( selected Ġ+ Ġ 1 ). toString () ĊĠĠĠĠĠĠĠ Ġrefresh Data () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġnext Exercise () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( exercises From Program . isNotEmpty () Ġ&& Ġcurrent Exercise Order Ġ< Ġexercises From Program . size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Exercise Order ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . current Exercise Number . text Ġ= Ġ( current Exercise Order Ġ+ Ġ 1 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . exercise Indicator . set Dot Selection ( current Exercise Order ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprevious Exercise () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( exercises From Program . isNotEmpty () Ġ&& Ġcurrent Exercise Order Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Exercise Order -- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . current Exercise Number . text Ġ= Ġ( current Exercise Order Ġ+ Ġ 1 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . exercise Indicator . set Dot Selection ( current Exercise Order ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave To Preference ( pref Name : ĠString ?, Ġpref Long To Set : ĠLong ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= Ġrequire Context (). get SharedPreferences ( pref Name , ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġshared Pref . edit () ĊĠĠĠĠĠĠĠ Ġeditor . put Long ( pref Name , Ġpref Long To Set !! ) ĊĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave To Preference ( pref Name : ĠString ?, Ġpref Int To Set : ĠInt ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= Ġrequire Context (). get SharedPreferences ( pref Name , ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġshared Pref . edit () ĊĠĠĠĠĠĠĠ Ġeditor . put Int ( pref Name , Ġpref Int To Set !! ) ĊĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġduration Set Ġ= ĠMy Time Picker Dialog . On Time Set Listener Ġ{ Ġ_: ĠTime Picker ?, Ġhour OfDay : ĠInt , Ġminute : ĠInt , Ġsecond : ĠInt Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġstr Minute : ĠString Ġ= Ġif Ġ( minute Ġ< Ġ 1 0 ) Ġ" 0 $ minute " Ġelse Ġminute . toString () ĊĠĠĠĠĠĠĠ Ġval Ġstr Hour : ĠString Ġ= Ġif Ġ( hour OfDay Ġ< Ġ 1 0 ) Ġ" 0 $ hour OfDay " Ġelse Ġhour OfDay . toString () ĊĠĠĠĠĠĠĠ Ġval Ġstr Second : ĠString Ġ= Ġif Ġ( second Ġ< Ġ 1 0 ) Ġ" 0 $ second " Ġelse Ġsecond . toString () ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġ"$ str Hour :$ str Minute :$ str Second " ĊĠĠĠĠĠĠĠ Ġbinding . duration Edit . text Ġ= Ġdate ĊĠĠĠĠĠĠĠ Ġhide Keyboard () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġclick Ar rows Ġ= ĠOn ClickListener Ġ{ Ġv : ĠView Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . next Exercise Arrow Ġ-> Ġnext Exercise () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . previous Exercise Arrow Ġ-> Ġprevious Exercise () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġcheck Exercise Exists Ġ= ĠOn Key Listener Ġ{ Ġ_: ĠView ?, Ġ_: ĠInt , Ġ_: ĠKeyEvent ? Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġl M ach Ġ= Ġm Db Machine . get Machine ( binding . exercise Edit . text . toString ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( l M ach Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Exercise Type UI ( l M ach . type ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġrest Time Edit Change Ġ= ĠOn Focus ChangeListener Ġ{ Ġ_: ĠView ?, Ġhas Focus : ĠBoolean Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ(! has Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Shared Params () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġitem Click Delete Record Ġ= ĠB tn ClickListener Ġ{ Ġid ToDelete : ĠLong Ġ-> Ġshow Delete Dialog ( id ToDelete ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġitem Click Copy Record Ġ= ĠB tn ClickListener Ġ{ Ġid : ĠLong Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġr : ĠI Record ? Ġ= Ġdao Record . get Record ( id ) ĊĠĠĠĠĠĠĠ Ġif Ġ( r Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetCurrent Machine ( r . exercise , Ġr . type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( r . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ F ON TE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= Ġr Ġas ĠFont e ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . reps Picker . progress Ġ= Ġf . re petition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . series Edit . setText ( String . format ("% d ", Ġf . serie )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumber Format Ġ= ĠDecimal Format ("# . ## ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġp oids Ġ= Ġf . p oids ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( f . unit Ġ== ĠUnit Converter . UNIT _ L BS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp oids Ġ= ĠUnit Converter . Kg to L bs ( p oids ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . unit Show . text Ġ= Ġf . unit . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . p oids Edit . setText ( number Format . format ( p oids )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ STATIC Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= Ġr Ġas ĠStatic Exercise ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . seconds Edit . setText ( String . format ("% d ", Ġf . second )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . series Edit . setText ( String . format ("% d ", Ġf . serie )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumber Format Ġ= ĠDecimal Format ("# . ## ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . p oids Edit . setText ( number Format . format ( f . p oids . toDouble ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ CAR DIO Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġr Ġas ĠCard io ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumber Format Ġ= ĠDecimal Format ("# . ## ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġdistance Ġ= Ġc . distance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( c . distance Unit Ġ== ĠUnit Converter . UNIT _ M ILE S ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdistance Ġ= ĠUnit Converter . Km To M iles ( c . distance ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . unit Distance Spinner . setSelection ( c . distance Unit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . distance Edit . setText ( number Format . format ( distance . toDouble ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . duration Edit . text Ġ= ĠDate Converter . duration To Hours Minutes Seconds Str ( c . duration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK Toast . info Toast ( main Activity , ĠgetString ( R . string . record copied ), ĠGr avity . BOTTOM , ĠK Toast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġval Ġrest Click Timer Ġ= ĠOn ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġrest Timer ?. restart () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġval Ġclick Static Timer Ġ= ĠOn ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġstatic Timer Running Ġ= Ġif Ġ(! static Timer Running ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( static Timer . is Pause ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatic Timer . resume () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatic Timer . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatic Timer . pause () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġclick Static Reset Ġ= ĠOn ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġstatic Timer . restart () ĊĠĠĠĠĠĠĠ Ġstatic Timer Running Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġclick Reset Static Timer Ġ= ĠOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġstatic Timer . restart () ĊĠĠĠĠĠĠĠ Ġstatic Timer Running Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġval Ġclick Add Button Ġ= ĠOn ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( exercises From Program . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK Toast . warning Toast ( require Activity (), Ġresources . getText ( R . string . empty Ex ercises In Program ). toString (), ĠGr avity . BOTTOM , ĠK Toast . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ OnClickListener ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( binding . exercise Edit . text . toString (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK Toast . warning Toast ( require Activity (), Ġresources . getText ( R . string . missing info ). toString (), ĠGr avity . BOTTOM , ĠK Toast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ OnClickListener ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġexercise Type : ĠInt ĊĠĠĠĠĠĠĠ Ġval Ġl Machine Ġ= Ġm Db Machine . get Machine ( binding . exercise Edit . text . toString ()) ĊĠĠĠĠĠĠĠ Ġexercise Type Ġ= Ġl Machine ?. type Ġ?: Ġselected Type ĊĠĠĠĠĠĠĠ Ġvar Ġrest Time Ġ= Ġ 6 0 ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrest Time Ġ= Ġbinding . rest Time Edit . text . toString (). toInt () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rest Time Edit . setText (" 6 0 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠDate () ĊĠĠĠĠĠĠĠ Ġval Ġtime Str Ġ= ĠDate Converter . currentTime () ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( exercise Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ F ON TE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . series Edit . text . toString (). isEmpty () Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . p oids Edit . text . toString (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK Toast . warning Toast ( require Activity (), Ġresources . getText ( R . string . missing info ). toString (), ĠGr avity . BOTTOM , ĠK Toast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ OnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtmp P oids Ġ= Ġbinding . p oids Edit . text . toString (). replace ("," . to Regex (), Ġ". "). toFloat () Ġ Ġ/* ĠWeight Ġconversion Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunit P oids Ġ= ĠUnit Converter . UNIT _ KG Ġ// ĠK g ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrength Records Dao . add Body Building Record ( date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . exercise Edit . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . series Edit . text . toString (). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . reps Picker . progress , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtmp P oids , Ġ// ĠAlways Ġsave Ġin ĠK G ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Pro fil From Main (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit P oids , Ġ// ĠStore ĠUnit Ġfor Ġfuture Ġdisplay ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . notes In Exercise . text . toString (), Ġ// Notes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Str ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ STATIC Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . series Edit . text . toString (). isEmpty () Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . seconds Edit . text . toString (). isEmpty () Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . p oids Edit . text . toString (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK Toast . warning Toast ( require Activity (), Ġresources . getText ( R . string . missing info ). toString (), ĠGr avity . BOTTOM , ĠK Toast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ OnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĠWeight Ġconversion Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtmp P oids Ġ= Ġbinding . p oids Edit . text . toString (). replace ("," . to Regex (), Ġ". "). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunit P oids Ġ= ĠUnit Converter . UNIT _ KG Ġ// ĠK g ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrest Time Ġ= Ġbinding . rest Time Edit . text . toString (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrest Time Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rest Time Edit . setText (" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdao Static . add Static Record ( date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . exercise Edit . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . series Edit . text . toString (). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . seconds Edit . text . toString (). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtmp P oids , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Pro fil From Main (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit P oids , Ġ// ĠStore ĠUnit Ġfor Ġfuture Ġdisplay ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . notes In Exercise . text . toString (), Ġ// Notes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Str ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ CAR DIO Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . duration Edit . text . toString (). isEmpty () Ġ&& Ġ Ġ// ĠOnly Ġone Ġis Ġmandatory ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . distance Edit . text . toString (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK Toast . warning Toast ( require Activity (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getText ( R . string . missing info ). toString () Ġ+ Ġ" ĠDistance Ġmissing ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . BOTTOM , ĠK Toast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ OnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġduration : ĠLong ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") Ġval ĠdateFormat Ġ= ĠSimpleDateFormat (" HH : mm : ss ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdateFormat . time Zone Ġ= ĠTime Zone . getTime Zone (" GMT ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtmp Date Ġ= ĠdateFormat . parse ( binding . duration Edit . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= Ġtmp Date !!. time ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠParseException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġdistance : ĠFloat Ġ= Ġif Ġ( binding . distance Edit . text . toString (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . distance Edit . text . toString (). replace ("," . to Regex (), Ġ". "). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġunit Distance Ġ= ĠUnit Converter . UNIT _ KM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . unit Distance Spinner . selected Item . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ== Ġcontext ?. getString ( R . string . M iles Unit Label )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdistance Ġ= ĠUnit Converter . M iles To Km ( distance ) Ġ// ĠAlways Ġconvert Ġto Ġkm ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Distance Ġ= ĠUnit Converter . UNIT _ M ILE S ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdao Card io . add Card io Record ( date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Str , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . exercise Edit . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdistance , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Pro fil From Main (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Distance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrequire Activity (). findViewById < View >( R . id . drawer _ layout )?. request Focus () ĊĠĠĠĠĠĠĠ Ġhide Keyboard () ĊĠĠĠĠĠĠĠ Ġl Table Color Ġ= Ġ( l Table Color Ġ+ Ġ 1 ) Ġ% Ġ 2 Ġ// ĠChange Ġthe Ġcolor Ġeach Ġtime Ġyou Ġadd Ġdata ĊĠĠĠĠĠĠĠ Ġrefresh Data () ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠArray Adapter ( require View (). context , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . layout . simple _ dropdown _ item _ 1 line , Ġdao Record . getAll Machines ( profil )) ĊĠĠĠĠĠĠĠ Ġbinding . exercise Edit . setAdapter ( adapter ) ĊĠĠĠĠĠĠĠ Ġ// ĠLaunch ĠRest ĠCount down ĊĠĠĠĠĠĠĠ Ġif Ġ( rest Time Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rest Fill Background Progress . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . exercise Indicator [ current Exercise Order ]. setBackground Resource ( R . drawable . green _ button _ background ) ĊĠĠĠĠĠĠĠ Ġrun Rest ( rest Time ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġclick Fail Button Ġ= ĠOn ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( exercises From Program . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . exercise Indicator [ current Exercise Order ]. setBackground Resource ( R . drawable . red _ button _ background ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrun Rest ( rest Time : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( require Context (). get SharedPreferences (" next Exercise Switch ", ĠContext . MODE _ PRIVATE ). getBoolean (" next Exercise Switch ", Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Exercise () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif ( rest Time != 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rest Fill Background Progress . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrest Timer Running Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rest Fill Background Progress . set Duration ( rest Time . to Long () Ġ* Ġprogress Scale Fix ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrest Timer ?. stop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrest Timer Ġ= ĠRx 2 Timer . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. initial Delay ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( rest Time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Emit Ġ{ Ġcount Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rest Fill Background Progress . set Progress ( count . toInt () Ġ* Ġprogress Scale Fix ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( count Ġ< Ġ 6 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . count Down . text Ġ= ĠgetString ( R . string . rest _ counter , Ġcount ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġminutes : ĠInt Ġ= Ġ(( count Ġ% Ġ 3 6 0 0 ) Ġ/ Ġ 6 0 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġseconds : ĠInt Ġ= Ġ( count Ġ% Ġ 6 0 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . count Down . text Ġ= ĠgetString ( R . string . rest _ counter _ minutes , Ġminutes , Ġseconds ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. onError Ġ{ Ġbinding . count Down . text Ġ= ĠgetString ( R . string . error ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. onComplete Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . count Down . text Ġ= ĠgetString ( R . string . rest _ finished ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rest Fill Background Progress . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrest Timer Running Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( require Context (). get SharedPreferences (" play Rest Sound ", ĠContext . MODE _ PRIVATE ). getBoolean (" play Rest Sound ", Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmedia Player Ġ= ĠMedia Player () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmy Uri : ĠUri Ġ= ĠUri . parse ( require Context (). get SharedPreferences (" rest Sound ", ĠContext . MODE _ PRIVATE ). getString (" rest Sound ", ĠRing tone Manager . getDefault Uri ( R . raw . ch ime ). toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Player . set DataSource ( this . require Context (), Ġmy Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Player . prepare () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Player . start () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrest Timer ?. start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rest Fill Background Progress . setOnClickListener ( rest Click Timer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠonClick Machine List With Icons Ġ= ĠOn ClickListener Ġ{ Ġv Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġold Cursor : ĠCursor ĊĠĠĠĠĠĠĠ Ġif Ġ( machine List Dialog Ġ!= Ġnull Ġ&& Ġmachine List Dialog !!. is Showing ) Ġ{ ĠĠĠĠĠĠĠ Ġ// ĠIn Ġcase Ġthe Ġdialog Ġis Ġalready Ġopen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ OnClickListener ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmachine List Ġ= ĠListView ( v . context ) ĊĠĠĠĠĠĠĠ Ġval Ġc : ĠCursor ? Ġ= Ġm Db Machine . all Machines ĊĠĠĠĠĠĠĠ Ġif Ġ( c Ġ== Ġnull Ġ|| Ġc . count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK Toast . warning Toast ( require Activity (), Ġresources . getText ( R . string . create Exercise First ). toString (), ĠGr avity . BOTTOM , ĠK Toast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmachine List . adapter Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( machine List . adapter Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Table Adapter Ġ= ĠMachine Cursor Adapter ( activity , Ġc , Ġ 0 , Ġm Db Machine ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmachine List . adapter Ġ= Ġm Table Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Table Adapter Ġ= Ġmachine List . adapter Ġas ĠMachine Cursor Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Cursor Ġ= Ġm Table Adapter . swap Cursor ( c ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Cursor ?. close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmachine List . on ItemClickListener Ġ= ĠOn ItemClickListener Ġ{ Ġ_: ĠAdapter View < *> ?, Ġview : ĠView , Ġ_: ĠInt , Ġ_: ĠLong Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġview . findViewById < TextView >( R . id . LIST _ MACHINE _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmachine ID Ġ= ĠtextView . text . toString (). to Long () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl Machine Db Ġ= ĠDA OM achine ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl Machine Ġ= Ġl Machine Db . get Machine ( machine ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetCurrent Exercise ( l Machine . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Activity . findViewById < View >( R . id . drawer _ layout ). request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( machine List Dialog !!. is Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmachine List Dialog !!. dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( v . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setTitle ( R . string . select Machine Dialog Label ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setView ( machine List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmachine List Dialog Ġ= Ġbuilder . create () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmachine List Dialog !!. show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġon Item Click Filter List Ġ= ĠOn ItemClickListener Ġ{ Ġ_: ĠAdapter View < *> ?, Ġ_: ĠView ?, Ġ_: ĠInt , Ġ_: ĠLong Ġ-> ĠsetCurrent Exercise ( binding . exercise Edit . text . toString ()) Ġ} ĊĊĠĠĠ Ġ// Required Ġfor Ġcard io / duration ĊĠĠĠ Ġprivate Ġval Ġclick Date Edit Ġ= ĠOn ClickListener Ġ{ Ġv : ĠView Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . duration Edit Ġ-> Ġshow Time Picker ( binding . duration Edit ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . exercise Edit Ġ-> Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmachine Image . setImage Resource ( R . drawable . ic _ gym _ bench _ 5 0 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . min Max Layout . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Note () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprevious Note Ġ= Ġexercises From Program [ current Exercise Order ]. note ĊĠĠĠĠĠĠĠ Ġif Ġ( binding . notes In Exercise . text . toString () Ġ!= Ġprevious Note ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdao Exercise In Program . update String ( exercises From Program [ current Exercise Order ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDAO Exercise In Program . NOTES , Ġbinding . notes In Exercise . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexercises From Program [ current Exercise Order ]. note Ġ= Ġbinding . notes In Exercise . text . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Delete Dialog ( id ToDelete : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ ĠS weet AlertDialog ( require Context (), ĠS weet AlertDialog . WARNING _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle Text ( getString ( R . string . Delete Record Dialog )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text ( resources . getText ( R . string . are y ous ure ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cancel Text ( resources . getText ( R . string . global _ no ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Confirm Text ( resources . getText ( R . string . global _ yes ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show Cancel Button ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Confirm ClickListener Ġ{ Ġs Dialog : ĠS weet AlertDialog Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdao Record . delete Record ( id ToDelete ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Record Table ( binding . exercise Edit . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK Toast . info Toast ( require Activity (), Ġresources . getText ( R . string . removed id ). toString (), ĠGr avity . BOTTOM , ĠK Toast . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Dialog . dismiss With Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġmain Activity Ġ= Ġrequire Activity () Ġas ĠMainActivity ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġname : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġrequire Arguments (). getString (" name ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Commit Transaction ") ĊĠĠĠ Ġprivate Ġfun Ġshow Time Picker ( time TextView : ĠTextView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtx Ġ= Ġtime TextView ?. text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġhour : ĠInt Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtx . substring ( 0 , Ġ 2 ). toInt () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmin : ĠInt Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtx . substring ( 3 , Ġ 5 ). toInt () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsec : ĠInt Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtx . substring ( 6 ). toInt () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( time TextView !!. id Ġ== ĠR . id . duration Edit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Duration Frag Ġ= ĠTime Picker Dialog Fragment . newInstance ( duration Set , Ġhour , Ġmin , Ġsec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfm Ġ= Ġrequire Activity (). support FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Duration Frag . show ( fm . beginTransaction (), Ġ" dialog _ time ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġfragment : ĠProgram Runner ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ĊĊĠĠĠ Ġprivate Ġval Ġprofil : ĠProfile ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmain Activity . current Profile ĊĊĠĠĠ Ġval Ġmachine : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġbinding . exercise Edit . text . toString () ĊĊĠĠĠ Ġprivate Ġfun ĠsetCurrent Exercise ( machine Str : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( machine Str . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Exercise Thumb . setImage Resource ( R . drawable . ic _ gym _ bench _ 5 0 dp ) Ġ// ĠDefault Ġimage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . min Max Layout . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġl Machine Ġ= Ġm Db Machine . get Machine ( machine Str ) ĊĠĠĠĠĠĠĠ Ġif Ġ( l Machine Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . exercise Edit . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Exercise Thumb . setImage Resource ( R . drawable . ic _ gym _ bench _ 5 0 dp ) Ġ// ĠDefault Ġimage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Exercise Type UI ( TYPE _ F ON TE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠUpdate ĠEdit View ĊĠĠĠĠĠĠĠ Ġbinding . exercise Edit . setText ( l Machine . name ) ĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġexercise ĠImage ĊĠĠĠĠĠĠĠ Ġbinding . image Exercise Thumb . setImage Resource ( R . drawable . ic _ gym _ bench _ 5 0 dp ) Ġ// ĠDefault Ġimage ĊĠĠĠĠĠĠĠ Ġval Ġimg Util Ġ= ĠImage Util () ĊĠĠĠĠĠĠĠ ĠImage Util . set Thumb ( binding . image Exercise Thumb , Ġimg Util . get Thumb Path ( l Machine . picture )) Ġ// ĠOver write Ġimage Ġis Ġthere Ġis Ġone ĊĠĠĠĠĠĠĠ Ġ// ĠUpdate ĠTable ĊĠĠĠĠĠĠĠ Ġupdate Record Table ( l Machine . name ) ĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġdisplay Ġtype ĊĠĠĠĠĠĠĠ Ġchange Exercise Type UI ( l Machine . type ) ĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġlast Ġvalues ĊĠĠĠĠĠĠĠ Ġupdate Last Record ( l Machine ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġfun Ġset Running Exercise ( exercise : ĠExercise In Program ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠUpdate ĠEdit View ĊĠĠĠĠĠĠĠ Ġbinding . exercise Edit . setText ( exercise . exercise Name ) ĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġexercise ĠImage ĊĠĠĠĠĠĠĠ Ġwhen Ġ( exercise . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ CAR DIO Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Exercise Thumb . setImage Resource ( R . drawable . ic _ training _ white _ 5 0 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ STATIC Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Exercise Thumb . setImage Resource ( R . drawable . ic _ static ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatic Prepare Time Ġ= Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . static Fill Background Progress . set Duration ((( exercise . seconds Ġ+ Ġstatic Prepare Time ) Ġ* Ġprogress Scale Fix ). to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatic Timer Ġ= ĠRx 2 Timer . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. initial Delay ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( exercise . seconds Ġ+ Ġstatic Prepare Time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Emit Ġ{ Ġcount Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . static Fill Background Progress . set Progress ( count . toInt () Ġ* Ġprogress Scale Fix ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( count Ġ< Ġ 6 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . count Down Static . text Ġ= ĠgetString ( R . string . count _ string , Ġcount ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġminutes : ĠInt Ġ= Ġ(( count Ġ% Ġ 3 6 0 0 ) Ġ/ Ġ 6 0 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġseconds : ĠInt Ġ= Ġ( count Ġ% Ġ 6 0 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . count Down Static . text Ġ= ĠgetString ( R . string . static _ counter _ minutes , Ġminutes , Ġseconds ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. onError Ġ{ Ġbinding . count Down Static . text Ġ= ĠgetString ( R . string . error ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. onComplete Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatic Finish Str Ġ= ĠgetString ( R . string . End ) Ġ+ Ġ" Ġ" Ġ+ Ġexercise . seconds . toString () Ġ+ Ġ" Ġ" Ġ+ ĠgetString ( R . string . Seconds Label _ short ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . count Down Static . text Ġ= Ġstatic Finish Str ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( require Context (). get SharedPreferences (" play Static Exercise Finish Sound ", ĠContext . MODE _ PRIVATE ). getBoolean (" play Static Exercise Finish Sound ", Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmedia Player Ġ= ĠMedia Player () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmy Uri : ĠUri Ġ= ĠUri . parse ( require Context (). get SharedPreferences (" static Sound ", ĠContext . MODE _ PRIVATE ). getString (" static Sound ", ĠRing tone Manager . getDefault Uri ( R . raw . ch ime ). toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Player . set DataSource ( this . require Context (), Ġmy Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Player . prepare () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Player . start () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Exercise Thumb . setImage Resource ( R . drawable . ic _ gym _ bench _ 5 0 dp ) Ġ// ĠDefault Ġimage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġl Machine Ġ= Ġm Db Machine . get Machine ( exercise . exercise Name ) ĊĠĠĠĠĠĠĠ Ġif Ġ( l Machine Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimg Util Ġ= ĠImage Util () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage Util . set Thumb ( binding . image Exercise Thumb , Ġimg Util . get Thumb Path ( l Machine . picture )) Ġ// ĠOver write Ġimage Ġis Ġthere Ġis Ġone ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchange Exercise Type UI ( exercise . type ) ĊĠĠĠĠĠĠĠ Ġupdate Record Table ( exercise . exercise Name ) ĊĠĠĠĠĠĠĠ Ġbinding . notes In Exercise . setText ( exercise . note ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( exercise . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ F ON TE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . reps Picker . progress Ġ= Ġexercise . re petition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . series Edit . setText ( exercise . serie . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rest Time Edit . setText ( exercise . sec Rest . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . p oids Edit . setText ( exercise . p oids . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ CAR DIO Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . duration Edit . text Ġ= ĠDate Converter . duration To Hours Minutes Seconds Str ( exercise . duration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . distance Edit . setText ( exercise . distance . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . unit Distance Spinner . setSelection ( exercise . distance Unit , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ STATIC Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . series Edit . setText ( exercise . serie . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . seconds Edit . setText ( exercise . seconds . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . p oids Edit . setText ( exercise . p oids . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rest Time Edit . setText ( exercise . sec Rest . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetCurrent Machine ( machine Str : ĠString , Ġexercise Type : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( machine Str . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Exercise Thumb . setImage Resource ( R . drawable . ic _ gym _ bench _ 5 0 dp ) Ġ// ĠDefault Ġimage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . min Max Layout . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġl Machine Ġ= Ġm Db Machine . get Machine ( machine Str ) ĊĠĠĠĠĠĠĠ Ġif Ġ( l Machine Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . exercise Edit . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Exercise Thumb . setImage Resource ( R . drawable . ic _ gym _ bench _ 5 0 dp ) Ġ// ĠDefault Ġimage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Exercise Type UI ( TYPE _ F ON TE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate MinMax ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . exercise Edit . setText ( l Machine . name ) ĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġexercise ĠImage ĊĠĠĠĠĠĠĠ Ġwhen Ġ( exercise Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ CAR DIO Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Exercise Thumb . setImage Resource ( R . drawable . ic _ training _ white _ 5 0 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ STATIC Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Exercise Thumb . setImage Resource ( R . drawable . ic _ static ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image Exercise Thumb . setImage Resource ( R . drawable . ic _ gym _ bench _ 5 0 dp ) Ġ// ĠDefault Ġimage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . image Exercise Thumb . setImage Resource ( R . drawable . ic _ gym _ bench _ 5 0 dp ) Ġ// ĠDefault Ġimage ĊĠĠĠĠĠĠĠ Ġval Ġimg Util Ġ= ĠImage Util () ĊĠĠĠĠĠĠĠ ĠImage Util . set Thumb ( binding . image Exercise Thumb , Ġimg Util . get Thumb Path ( l Machine . picture )) Ġ// ĠOver write Ġimage Ġis Ġthere Ġis Ġone ĊĊĠĠĠĠĠĠĠ Ġupdate Record Table ( l Machine . name ) ĊĠĠĠĠĠĠĠ Ġchange Exercise Type UI ( exercise Type ) ĊĊĠĠĠĠĠĠĠ Ġupdate MinMax ( l Machine ) ĊĠĠĠĠĠĠĠ Ġupdate Last Record ( l Machine ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġfun Ġupdate MinMax ( m : ĠMachine ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġunit Str : ĠString ĊĠĠĠĠĠĠĠ Ġvar Ġweight : ĠFloat ĊĠĠĠĠĠĠĠ Ġif Ġ( get Pro fil From Main () Ġ!= Ġnull Ġ&& Ġm Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m . type Ġ== ĠTYPE _ F ON TE Ġ|| Ġm . type Ġ== ĠTYPE _ STATIC ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmin Value : ĠWeight ? Ġ= Ġstrength Records Dao . getMin ( get Pro fil From Main (), Ġm ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( min Value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . min Max Layout . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( min Value . stored Unit Ġ== ĠUnit Converter . UNIT _ L BS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweight Ġ= ĠUnit Converter . Kg to L bs ( min Value . stored Weight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Str Ġ= Ġrequire Context (). getString ( R . string . L bs Unit Label ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweight Ġ= Ġmin Value . stored Weight ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Str Ġ= Ġrequire Context (). getString ( R . string . Kg Unit Label ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumber Format Ġ= ĠDecimal Format ("# . ## ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . min Text . text Ġ= Ġnumber Format . format ( weight . toDouble ()) Ġ+ Ġ" Ġ" Ġ+ Ġunit Str ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠmaxValue : ĠWeight Ġ= Ġstrength Records Dao . getMax ( get Pro fil From Main (), Ġm ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( max Value . stored Unit Ġ== ĠUnit Converter . UNIT _ L BS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweight Ġ= ĠUnit Converter . Kg to L bs ( max Value . stored Weight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Str Ġ= Ġrequire Context (). getString ( R . string . L bs Unit Label ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweight Ġ= ĠmaxValue . stored Weight ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Str Ġ= Ġrequire Context (). getString ( R . string . Kg Unit Label ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . max Text . text Ġ= Ġnumber Format . format ( weight . toDouble ()) Ġ+ Ġ" Ġ" Ġ+ Ġunit Str ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . min Text . text Ġ= Ġ"-" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . max Text . text Ġ= Ġ"-" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . min Max Layout . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( m . type Ġ== ĠTYPE _ CAR DIO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . min Max Layout . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . min Text . text Ġ= Ġ"-" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . max Text . text Ġ= Ġ"-" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . min Max Layout . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġfun Ġupdate Last Record ( m : ĠMachine ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġl Last Record Ġ= Ġdao Record . getLast Exercise Record ( m . id , Ġprofil ) ĊĠĠĠĠĠĠĠ Ġ// ĠDefault ĠValues ĊĠĠĠĠĠĠĠ Ġbinding . series Edit . setText (" 1 ") ĊĠĠĠĠĠĠĠ Ġbinding . reps Picker . progress Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠ Ġbinding . seconds Edit . setText (" 6 0 ") ĊĠĠĠĠĠĠĠ Ġbinding . p oids Edit . setText (" 5 0 ") ĊĠĠĠĠĠĠĠ Ġbinding . distance Edit . setText (" 1 ") ĊĠĠĠĠĠĠĠ Ġbinding . duration Edit . text Ġ= Ġ" 0 0 : 1 0 : 0 0 " ĊĠĠĠĠĠĠĠ Ġif Ġ( l Last Record Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( l Last Record . type Ġ== ĠTYPE _ F ON TE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl Last Body Building Record Ġ= Ġl Last Record Ġas ĠFont e ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( l Last Body Building Record . serie Ġ> Ġ 1 ) Ġ{ Ġ// only Ġshow Ġwhen Ġmore Ġthen Ġone Ġto Ġkeep Ġinterface Ġclean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . serie Card View . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . series Edit . setText ( l Last Body Building Record . serie . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . reps Picker . progress Ġ= Ġl Last Body Building Record . re petition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . unit Show . text Ġ= Ġ" kg " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( l Last Body Building Record . unit Ġ== ĠUnit Converter . UNIT _ L BS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . unit Show . text Ġ= Ġ" L bs " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumber Format Ġ= ĠDecimal Format ("# . ## ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( l Last Body Building Record . unit Ġ== ĠUnit Converter . UNIT _ L BS ) Ġbinding . p oids Edit . setText ( number Format . format ( Unit Converter . Kg to L bs ( l Last Body Building Record . p oids ). toDouble ())) Ġelse Ġbinding . p oids Edit . setText ( number Format . format ( l Last Body Building Record . p oids . toDouble ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( l Last Record . type Ġ== ĠTYPE _ CAR DIO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl Last Card io Record Ġ= Ġl Last Record Ġas ĠCard io ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . duration Edit . text Ġ= ĠDate Converter . duration To Hours Minutes Seconds Str ( l Last Card io Record . duration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . unit Distance Spinner . setSelection ( l Last Card io Record . distance Unit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumber Format Ġ= ĠDecimal Format ("# . ## ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( l Last Card io Record . distance Unit Ġ== ĠUnit Converter . UNIT _ M ILE S ) Ġbinding . distance Edit . setText ( number Format . format ( Unit Converter . Km To M iles ( l Last Card io Record . distance ). toDouble ())) Ġelse Ġbinding . distance Edit . setText ( number Format . format ( l Last Card io Record . distance . toDouble ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( l Last Record . type Ġ== ĠTYPE _ STATIC ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl Last Static Record Ġ= Ġl Last Record Ġas ĠStatic Exercise ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . series Edit . setText ( l Last Static Record . serie . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . seconds Edit . setText ( l Last Static Record . second . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . unit Show . text Ġ= Ġ" kg " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( l Last Static Record . unit Ġ== ĠUnit Converter . UNIT _ L BS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . unit Show . text Ġ= Ġ" L bs " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumber Format Ġ= ĠDecimal Format ("# . ## ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( l Last Static Record . unit Ġ== ĠUnit Converter . UNIT _ L BS ) Ġbinding . p oids Edit . setText ( number Format . format ( Unit Converter . Kg to L bs ( l Last Static Record . p oids ). toDouble ())) Ġelse Ġbinding . p oids Edit . setText ( number Format . format ( l Last Static Record . p oids . toDouble ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Record Table ( exercise Name : ĠString ) Ġ{ Ġ// ĠRecords Ġfrom Ġrecords Ġtable ĊĠĠĠĠĠĠĠ Ġmain Activity . current Machine Ġ= Ġexercise Name ĊĠĠĠĠĠĠĠ Ġrequire View (). post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc : ĠCursor ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġold Cursor : ĠCursor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Get Ġresults ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlimit Show ed Results Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Ġ= Ġ( dao Record . getAll Record By Machines ( profil , Ġexercise Name , Ġlimit Show ed Results ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn @ post ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( c . count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . record List . adapter Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . record List . adapter Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Table Adapter Ġ= ĠRecord Cursor Adapter ( main Activity , Ġc , Ġ 0 , Ġitem Click Delete Record , Ġitem Click Copy Record ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Table Adapter . set First Color Odd ( l Table Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . record List . adapter Ġ= Ġm Table Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Table Adapter Ġ= Ġbinding . record List . adapter Ġas ĠRecord Cursor Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Table Adapter . set First Color Odd ( l Table Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Cursor Ġ= Ġm Table Adapter . swap Cursor ( c ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Cursor ?. close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Pro fil From Main (): ĠProfile ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmain Activity . current Profile ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġfun Ġrefresh Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( profil Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdao Exercise In Program . set Profile ( profil ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( exercises From Program . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Exercise Ġ= Ġexercises From Program [ current Exercise Order ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Running Exercise ( current Exercise ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Record Table ( current Exercise . exercise Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchange Exercise Type UI ( p Type : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . save Weight . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠ Ġbinding . save Re ps . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠ Ġwhen Ġ( p Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ CAR DIO Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . serie Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re petition Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . weight Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . seconds Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . distance Card View . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . duration Card View . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . static Fill Background Progress . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Type Ġ= ĠTYPE _ CAR DIO ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ STATIC Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . serie Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re petition Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . seconds Card View . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . weight Card View . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rest Time Layout . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . distance Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . duration Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . static Fill Background Progress . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . static Fill Background Progress . setOnClickListener ( click Static Timer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . static Fill Background Progress . setOn Long ClickListener ( click Reset Static Timer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . reset Static Timer Button . setOnClickListener ( click Static Reset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Type Ġ= ĠTYPE _ STATIC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTYPE _ F ON TE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . serie Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re petition Card View . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . seconds Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . weight Card View . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rest Time Layout . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . distance Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . duration Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . static Fill Background Progress . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Type Ġ= ĠTYPE _ F ON TE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . serie Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re petition Card View . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . seconds Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . weight Card View . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . rest Time Layout . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . distance Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . duration Card View . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . static Fill Background Progress . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Type Ġ= ĠTYPE _ F ON TE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Shared Params () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= Ġactivity ?. get Preferences ( Context . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġshared Pref ?. edit () ĊĠĠĠĠĠĠĠ Ġeditor ?. putString (" rest Time ", Ġbinding . rest Time Edit . text . toString ()) Ċ // ĠĠĠĠĠĠĠ Ġeditor ?. put Boolean (" rest Check ", Ġrest Time Check . isChecked ) ĊĠĠĠĠĠĠĠ Ġeditor ?. put Boolean (" show Details ", Ġbinding . rest Control Layout . is Shown ) ĊĠĠĠĠĠĠĠ Ġeditor ?. apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrestore Shared Params () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= Ġrequire Activity (). get Preferences ( Context . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġbinding . rest Time Edit . setText ( shared Pref ?. getString (" rest Time ", Ġ"")) Ċ // ĠĠĠĠĠĠĠ Ġrest Time Check . isChecked Ġ= Ġshared Pref !!. getBoolean (" rest Check ", Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Keyboard () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġrequire Context (). getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimm . hide Soft Input From Window ( require View (). window Token , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d ( ex , Ġ" EX Ġ% s ", Ġex . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreate Ġa Ġnew Ġinstance Ġof ĠDetails Fragment , Ġinitialized Ġto ĊĠĠĠĠĠĠĠĠ Ġ* Ġshow Ġthe Ġtext Ġat Ġ' index '. ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( name : ĠString ?, Ġid : ĠInt ): ĠProgram Runner Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ġ= ĠProgram Runner () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString (" name ", Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . put Int (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf . arguments Ġ= Ġargs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġf ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ