package Ġcom . ger o sp ri me . gy log . ui . exercises . filter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . Compound Button Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġcom . ger o sp ri me . gy log . models . mus cle . M us cle Enum Ċ import Ġcom . ger o sp ri me . gy log . ui . exercises . R Ċ import Ġcom . google . android . material . chip . Chip Ċ Ċ class ĠExercise Filter Dialog Fragment Ġ: ĠDialog Fragment () Ġ{ ĊĊĠĠĠ Ġvar Ġmus cle Maps Ġ: ĠMutable Map < M us cle Enum , ĠCh ip > Ġ= Ġmutable Map Of () ĊĠĠĠ Ġvar Ġchip M us cle Maps Ġ: ĠMutable Map < Chip , ĠM us cle Enum > Ġ= Ġmutable Map Of () ĊĊĠĠĠ Ġlateinit Ġvar Ġche st Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġche st Upper Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġche st Lower Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġtr ice ps Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġb ice ps Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġupper Back Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġlower Back Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġh am strings Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġfore arms Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġsh oulder Side Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġsh oulder Front Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġsh oulder Back Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġtr aps Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġabs Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġqu ads Chip Ġ: ĠCh ip ĊĠĠĠ Ġlateinit Ġvar Ġcal ves Chip Ġ: ĠCh ip ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbutton Cancel Ġ: ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbutton Confirm Ġ: ĠButton ĊĊĠĠĠ Ġprivate Ġval Ġselected M us cles Ġ: ĠArrayList < M us cle Enum > Ġ= Ġarray ListOf () ĊĊĠĠĠ Ġinterface ĠListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Filter Configured ( selected M us cles Ġ: ĠArrayList < M us cle Enum >) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġlistener Ġ: ĠListener ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġis ĠListener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġinfl ated Ġ= Ġinflater . inflate ( R . layout . fragment _ exercise _ filter _ dialog , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġbutton Cancel Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ cancel ) ĊĠĠĠĠĠĠĠ Ġbutton Cancel . setOnClickListener Ġ{ Ġdismiss () Ġ} ĊĊĠĠĠĠĠĠĠ Ġbutton Confirm Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ confirm ) ĊĠĠĠĠĠĠĠ Ġbutton Confirm . setOnClickListener Ġ{ Ġfilter () Ġ} ĊĊĠĠĠĠĠĠĠ Ġche st Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ che st ) ĊĠĠĠĠĠĠĠ Ġche st Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . CH EST ] Ġ= Ġche st Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ che st Chip ] Ġ= ĠM us cle Enum . CH EST ĊĊĠĠĠĠĠĠĠ Ġche st Upper Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ che st _ upper ) ĊĠĠĠĠĠĠĠ Ġche st Upper Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . CH EST _ UPPER ] Ġ= Ġche st Upper Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ che st Upper Chip ] Ġ= ĠM us cle Enum . CH EST _ UPPER ĊĊĠĠĠĠĠĠĠ Ġche st Lower Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ che st _ lower ) ĊĠĠĠĠĠĠĠ Ġche st Lower Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . CH EST _ LOWER ] Ġ= Ġche st Lower Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ che st Lower Chip ] Ġ= ĠM us cle Enum . CH EST _ LOWER ĊĊĠĠĠĠĠĠĠ Ġtr ice ps Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ tr ice ps ) ĊĠĠĠĠĠĠĠ Ġtr ice ps Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . TR ICE PS ] Ġ= Ġtr ice ps Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ tr ice ps Chip ] Ġ= ĠM us cle Enum . TR ICE PS ĊĊĠĠĠĠĠĠĠ Ġb ice ps Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ b ice ps ) ĊĠĠĠĠĠĠĠ Ġb ice ps Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . B ICE PS ] Ġ= Ġb ice ps Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ b ice ps Chip ] Ġ= ĠM us cle Enum . B ICE PS ĊĊĠĠĠĠĠĠĠ Ġupper Back Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ back _ upper ) ĊĠĠĠĠĠĠĠ Ġupper Back Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . BACK _ UPPER ] Ġ= Ġupper Back Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ upper Back Chip ] Ġ= ĠM us cle Enum . BACK _ UPPER ĊĊĠĠĠĠĠĠĠ Ġlower Back Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ back _ lower ) ĊĠĠĠĠĠĠĠ Ġlower Back Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . BACK _ LOWER ] Ġ= Ġlower Back Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ lower Back Chip ] Ġ= ĠM us cle Enum . BACK _ LOWER ĊĊĠĠĠĠĠĠĠ Ġh am strings Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ ham string ) ĊĠĠĠĠĠĠĠ Ġh am strings Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . H AM STRING S ] Ġ= Ġh am strings Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ ham strings Chip ] Ġ= ĠM us cle Enum . H AM STRING S ĊĊĠĠĠĠĠĠĠ Ġfore arms Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ fore arms ) ĊĠĠĠĠĠĠĠ Ġfore arms Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . FORE AR MS ] Ġ= Ġfore arms Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ fore arms Chip ] Ġ= ĠM us cle Enum . FORE AR MS ĊĊĠĠĠĠĠĠĠ Ġsh oulder Side Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ sh oulder _ side ) ĊĠĠĠĠĠĠĠ Ġsh oulder Side Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . SHO UL DER _ SIDE ] Ġ= Ġsh oulder Side Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ sh oulder Side Chip ] Ġ= ĠM us cle Enum . SHO UL DER _ SIDE ĊĊĠĠĠĠĠĠĠ Ġsh oulder Front Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ sh oulder _ front ) ĊĠĠĠĠĠĠĠ Ġsh oulder Front Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . SHO UL DER _ FRONT ] Ġ= Ġsh oulder Front Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ sh oulder Front Chip ] Ġ= ĠM us cle Enum . SHO UL DER _ FRONT ĊĊĠĠĠĠĠĠĠ Ġsh oulder Back Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ sh oulder _ back ) ĊĠĠĠĠĠĠĠ Ġsh oulder Back Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . SHO UL DER _ BACK ] Ġ= Ġsh oulder Back Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ sh oulder Back Chip ] Ġ= ĠM us cle Enum . SHO UL DER _ BACK ĊĊĠĠĠĠĠĠĠ Ġtr aps Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ tr aps ) ĊĠĠĠĠĠĠĠ Ġtr aps Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . TRAP S ] Ġ= Ġtr aps Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ tr aps Chip ] Ġ= ĠM us cle Enum . TRAP S ĊĊĠĠĠĠĠĠĠ Ġabs Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ abs ) ĊĠĠĠĠĠĠĠ Ġabs Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . ABS ] Ġ= Ġabs Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ abs Chip ] Ġ= ĠM us cle Enum . ABS ĊĊĠĠĠĠĠĠĠ Ġqu ads Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ qu ads ) ĊĠĠĠĠĠĠĠ Ġqu ads Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . QU ADS ] Ġ= Ġqu ads Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ qu ads Chip ] Ġ= ĠM us cle Enum . QU ADS ĊĊĠĠĠĠĠĠĠ Ġcal ves Chip Ġ= Ġinfl ated . findViewById ( R . id . fragment _ exercise _ filter _ mus cle _ cal ves ) ĊĠĠĠĠĠĠĠ Ġcal ves Chip . setOn Checked ChangeListener Ġ{ Ġcompound Button , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmus cle Check Event ( compound Button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmus cle Maps [ M us cle Enum . CAL V ES ] Ġ= Ġcal ves Chip ĊĠĠĠĠĠĠĠ Ġchip M us cle Maps [ cal ves Chip ] Ġ= ĠM us cle Enum . CAL V ES ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġreturn Ġinfl ated ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( chip M us cle Map Ġin Ġchip M us cle Maps . entries ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( chip M us cle Map . key . isChecked ) ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected M us cles . add ( chip M us cle Map . value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfilter () Ġ{ ĊĠĠĠĠĠĠĠ Ġlistener . on Filter Configured ( selected M us cles ) ĊĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmus cle Check Event ( cmp Ġ: ĠCompound Button ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( cmp . isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected M us cles . add ( chip M us cle Maps [ cmp ] !! ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected M us cles . remove ( chip M us cle Maps [ cmp ] !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }