package Ġde . ba um ann . qu its mo king . fragments Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Html Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . text . method . Link Movement Method Ċ import Ġandroid . text . util . Link ify Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġde . ba um ann . qu its mo king . R Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġkotlin . math . floor Ċ Ċ class ĠFragment Health Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġshared Preferences : ĠSharedPreferences ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġinflater . inflate ( R . layout . fragment _ health , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ ĠPreference Manager . setDefault Values ( activity , ĠR . xml . user _ settings , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġshared Preferences Ġ= ĠPreference Manager . getDefault SharedPreferences ( activity ) ĊĠĠĠĠĠĠĠ Ġset Progress ( root View , Ġ 0 . 3 3 , ĠR . id . progress Bar , ĠR . id . text _ re ached 1 ) ĊĠĠĠĠĠĠĠ Ġset Progress ( root View , Ġ 8 . 0 , ĠR . id . progress Bar 2 , ĠR . id . text _ re ached 2 ) ĊĠĠĠĠĠĠĠ Ġset Progress ( root View , Ġ 2 4 . 0 , ĠR . id . progress Bar 3 , ĠR . id . text _ re ached 3 ) ĊĠĠĠĠĠĠĠ Ġset Progress ( root View , Ġ 4 8 . 0 , ĠR . id . progress Bar 4 , ĠR . id . text _ re ached 4 ) ĊĠĠĠĠĠĠĠ Ġset Progress ( root View , Ġ 7 2 . 0 , ĠR . id . progress Bar 5 , ĠR . id . text _ re ached 5 ) ĊĠĠĠĠĠĠĠ Ġset Progress ( root View , Ġ 1 6 8 . 0 , ĠR . id . progress Bar 6 , ĠR . id . text _ re ached 6 ) ĊĠĠĠĠĠĠĠ Ġset Progress ( root View , Ġ 2 1 6 0 . 0 , ĠR . id . progress Bar 7 , ĠR . id . text _ re ached 7 ) ĊĠĠĠĠĠĠĠ Ġset Progress ( root View , Ġ 6 4 8 0 . 0 , ĠR . id . progress Bar 8 , ĠR . id . text _ re ached 8 ) ĊĠĠĠĠĠĠĠ Ġset Progress ( root View , Ġ 8 7 6 0 . 0 , ĠR . id . progress Bar 9 , ĠR . id . text _ re ached 9 ) ĊĠĠĠĠĠĠĠ Ġset Progress ( root View , Ġ 1 7 5 2 0 . 0 , ĠR . id . progress Bar 1 0 , ĠR . id . text _ re ached 1 0 ) ĊĠĠĠĠĠĠĠ Ġset Progress ( root View , Ġ 4 3 8 0 0 . 0 , ĠR . id . progress Bar 1 1 , ĠR . id . text _ re ached 1 1 ) ĊĠĠĠĠĠĠĠ Ġset Progress ( root View , Ġ 8 7 6 0 0 . 0 , ĠR . id . progress Bar 1 2 , ĠR . id . text _ re ached 1 2 ) ĊĠĠĠĠĠĠĠ Ġset Progress ( root View , Ġ 1 3 1 4 0 0 . 0 , ĠR . id . progress Bar 1 3 , ĠR . id . text _ re ached 1 3 ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Prepare Options Menu ( menu : ĠMenu ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġmenu ; Ġthis Ġadds Ġitems Ġto Ġthe Ġaction Ġbar Ġif Ġit Ġis Ġpresent . ĊĠĠĠĠĠĠĠ Ġsuper . on Prepare Options Menu ( menu ) ĊĠĠĠĠĠĠĠ Ġmenu . find Item ( R . id . action _ share ). isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġmenu . find Item ( R . id . action _ backup ). isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġmenu . find Item ( R . id . action _ image ). isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġmenu . find Item ( R . id . action _ filter ). isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġmenu . find Item ( R . id . action _ sort ). isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġmenu . find Item ( R . id . action _ reset ). isVisible Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item . itemId Ġ== ĠR . id . action _ info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs : ĠSp ann able String Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able String ( Html . from Html ( getString ( R . string . info _ text ), ĠHtml . FROM _ HTML _ MODE _ LEG ACY )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able String ( Html . from Html ( getString ( R . string . info _ text ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLink ify . add Links ( s , ĠLink ify . WEB _ URL S ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠAlertDialog . Builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . info _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( s ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( getString ( R . string . yes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġdialog , Ġ_ Ġ-> Ġdialog . cancel () Ġ}. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( d . findViewById < View >( android . R . id . message ) Ġas ĠTextView ). movement Method Ġ= ĠLink Movement Method . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Progress ( view : ĠView , Ġhour Time : ĠDouble , ĠprogressBar _ ID : ĠInt , Ġtext : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠDate () ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat (" dd . MM . yyyy ĠHH : mm ", ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġval Ġdate Start Ġ= Ġformat . format ( shared Preferences !!. getLong (" startTime ", Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġdate Stop Ġ= Ġformat . format ( date ) ĊĠĠĠĠĠĠĠ Ġval ĠprogressBar : ĠProgress Bar ? ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd 1 Ġ= Ġformat . parse ( date Start ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġd 2 Ġ= Ġformat . parse ( date Stop ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhour Ġ= Ġ( 6 0 Ġ* Ġ 6 0 Ġ* Ġ 1 0 0 0 ). to Long () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate 1 Ġ= Ġd 1 . time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate 2 Ġ= Ġd 2 . time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplus Day Ġ= Ġhour Ġ* Ġhour Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplus 2 Ġ= Ġplus Day Ġ/ Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiff Count Ġ= Ġdate 1 Ġ+ Ġplus Day Ġ- Ġdate 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiff 2 Ġ= Ġdiff Count Ġ/ Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiff Days Ġ= Ġfloor ( diff Count Ġ/ Ġ( 2 4 Ġ* Ġ 6 0 Ġ* Ġ 6 0 Ġ* Ġ 1 0 0 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiff Hours Ġ= Ġdiff Count Ġ/ Ġ( 6 0 Ġ* Ġ 6 0 Ġ* Ġ 1 0 0 0 ) Ġ% Ġ 2 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiff Minutes Ġ= Ġdiff Count Ġ/ Ġ( 6 0 Ġ* Ġ 1 0 0 0 ) Ġ% Ġ 6 0 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar Ġ= Ġview . findViewById ( progress Bar _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( progress Bar Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . rotation Ġ= Ġ 1 8 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax Ġ= Ġplus 2 . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġdiff 2 . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . max Ġ= Ġmax ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . progress Ġ= Ġactual ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdays Ġ= ĠString . format ( Locale . GER MAN Y , Ġ"% . 0 f ", Ġdiff Days ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhours Ġ= ĠString . format ( Locale . GER MAN Y , Ġ"% . 0 f ", Ġdiff Hours ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġminutes Ġ= ĠString . format ( Locale . GER MAN Y , Ġ"% . 0 f ", Ġdiff Minutes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext view Reached 1 3 : ĠTextView ? Ġ= Ġview . findViewById ( text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( text view Reached 1 3 Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiff Minutes Ġ< Ġ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext view Reached 1 3 ?. text Ġ= ĠgetString ( R . string . health _ congr at ulations ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiff Hours Ġ< Ġ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext view Reached 1 3 ?. text Ġ= Ġ( getString ( R . string . health _ re ached ) Ġ+ Ġ" Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġminutes Ġ+ Ġ" Ġ" Ġ+ ĠgetString ( R . string . time _ minutes )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdiff Days Ġ<= Ġ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext view Reached 1 3 ?. text Ġ= Ġ( getString ( R . string . health _ re ached ) Ġ+ Ġ" Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġhours Ġ+ Ġ" Ġ" Ġ+ ĠgetString ( R . string . time _ hours ) Ġ+ Ġ" Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġminutes Ġ+ Ġ" Ġ" Ġ+ ĠgetString ( R . string . time _ minutes )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext view Reached 1 3 ?. text Ġ= Ġ( getString ( R . string . health _ re ached ) Ġ+ Ġ" Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġdays Ġ+ Ġ" Ġ" Ġ+ ĠgetString ( R . string . time _ days ) Ġ+ Ġ" Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġhours Ġ+ Ġ" Ġ" Ġ+ ĠgetString ( R . string . time _ hours ) Ġ+ Ġ" Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġminutes Ġ+ Ġ" Ġ" Ġ+ ĠgetString ( R . string . time _ minutes )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }