package Ġde . dr to bias pr in z . sum mit book . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . content . Intent Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget .* Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . card view . widget . Card View Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġde . dr to bias pr in z . sum mit book .* Ċ import Ġde . dr to bias pr in z . sum mit book . models . Sum mit Ċ import Ġde . dr to bias pr in z . sum mit book . ui . Gar min Python Executor Ċ import Ġde . dr to bias pr in z . sum mit book . ui . dialog . Add Additional Data From External Resources Dialog Ċ import Ġde . dr to bias pr in z . sum mit book . ui . dialog . Add Sum mit Dialog . Companion . update Instance Ċ import Ġde . dr to bias pr in z . sum mit book . ui . utils . Image Picker Listener Ċ import Ġde . dr to bias pr in z . sum mit book . ui . utils . Sort Filter Helper Ċ import Ġjava . util .* ĊĊ Ċ class ĠSum mit View Adapter ( private Ġval Ġsort Filter Helper : ĠSort Filter Helper , Ġprivate Ġval Ġpython Executor : ĠGar min Python Executor ?) Ġ: ĠRecyclerView . Adapter < Sum mit View Adapter . ViewHolder ?> (), ĠFilter able Ġ{ ĊĠĠĠ Ġvar Ġcard View : ĠCard View ? Ġ= Ġnull ĊĠĠĠ Ġval Ġsum mit Entries Ġ= Ġsort Filter Helper . entries ĊĠĠĠ Ġlateinit Ġvar Ġcontext : ĠContext ĊĠĠĠ Ġvar Ġsum mit Entries Filtered : ĠArrayList < Sum mit >? ĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsum mit Entries Filtered ?. size Ġ?: Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , Ġview Type : ĠInt ĊĠĠĠ Ġ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġcard View Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . card _ sum mit , Ġparent , Ġfalse ) Ġas ĠCard View ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( card View ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcard View Ġ= Ġholder . card View ĊĠĠĠĠĠĠĠ Ġif Ġ( card View Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcard View . context ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentry Ġ= Ġsum mit Entries Filtered ?. get ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( entry Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Card View ( card View , Ġentry , Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetItem ( position : ĠInt ): ĠSum mit ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsum mit Entries Filtered ?. get ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfill Card View ( card View : ĠCard View , Ġsum mit : ĠSum mit , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠtextView Date Ġ= Ġcard View . findViewById < TextView ? >( R . id . tour _ date ) ĊĠĠĠĠĠĠĠ ĠtextView Date ?. text Ġ= Ġsum mit . getDate AsString () ĊĠĠĠĠĠĠĠ Ġval ĠtextView Name Ġ= Ġcard View . findViewById < TextView ? >( R . id . sum mit _ name ) ĊĠĠĠĠĠĠĠ ĠtextView Name ?. text Ġ= Ġsum mit . name ĊĠĠĠĠĠĠĠ Ġval ĠtextView Height Ġ= Ġcard View . findViewById < TextView ? >( R . id . height _ meter ) ĊĠĠĠĠĠĠĠ ĠtextView Height ?. text Ġ= ĠString . format ("% s Ġhm ", Ġsum mit . elevation Data . elevation Gain ) ĊĠĠĠĠĠĠĠ Ġval ĠimageView Sport Type Ġ= Ġcard View . findViewById < ImageView ? >( R . id . sport _ type _ image ) ĊĠĠĠĠĠĠĠ Ġsum mit . sport Type . image Id . let Ġ{ ĠimageView Sport Type ?. setImage Resource ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġimage Ġ= Ġcard View . findViewById < ImageView ? >( R . id . card _ view _ image ) ĊĠĠĠĠĠĠĠ Ġval Ġimage Text Ġ= Ġcard View . findViewById < Relative Layout ? >( R . id . card _ view _ text ) ĊĠĠĠĠĠĠĠ Ġif Ġ( image Text Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Image ( sum mit , Ġimage Text , ĠtextView Name , Ġimage , Ġcard View ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġset Favorite Button Ġ= Ġcard View . findViewById < Image Button ? >( R . id . entry _ favorite ) ĊĠĠĠĠĠĠĠ Ġif Ġ( sum mit . is Favorite ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Favorite Button ?. setImage Resource ( R . drawable . ic _ star _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Favorite Button ?. setImage Resource ( R . drawable . ic _ star _ border _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Favorite Button ?. setOnClickListener Ġ{ Ġ_: ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sum mit . is Favorite ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Favorite Button . setImage Resource ( R . drawable . ic _ star _ border _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Favorite Button . setImage Resource ( R . drawable . ic _ star _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsum mit . is Favorite Ġ= Ġ! sum mit . is Favorite ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort Filter Helper . database . sum mit Dao ()?. update Is Favorite ( sum mit . id , Ġsum mit . is Favorite ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġadd Image Button Ġ= Ġcard View . findViewById < Image Button ? >( R . id . entry _ add _ image ) ĊĠĠĠĠĠĠĠ Ġif Ġ( sum mit . has Image Path ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Image Button . setOnClickListener Ġ{ Ġv : ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġv ?. context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠAdd Images Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Select On Os Map Activity . SUM MIT _ ID _ EXTRA _ IDENTIFIER , Ġsum mit . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Select On Os Map Activity . SUM MIT _ POSITION , Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv ?. context ?. startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= ĠImage Picker Listener () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . set Listener ( add Image Button , Ġsum mit , Ġthis , Ġsort Filter Helper . database ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġadd Velocity Data Ġ= Ġcard View . findViewById < Image Button ? >( R . id . entry _ add _ velocity _ data ) ĊĠĠĠĠĠĠĠ Ġif Ġ( sum mit . velocity Data . has Additional Data () Ġ|| Ġsum mit . elevation Data . has Additional Data ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Velocity Data ?. setImage Resource ( R . drawable . ic _ baseline _ speed _ 2 4 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Velocity Data ?. setImage Resource ( R . drawable . ic _ baseline _ more _ time _ 2 4 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(( sum mit . gar min Data Ġ== Ġnull Ġ|| Ġsum mit . gar min Data ?. activity Id Ġ== Ġnull ) Ġ&& Ġ! sum mit . has G ps Track ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Velocity Data ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Velocity Data ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd Velocity Data ?. setOnClickListener Ġ{ Ġv : ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( python Executor Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Additional Data From External Resources Dialog ( sum mit , Ġpython Executor , Ġsort Filter Helper , Ġadd Velocity Data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show (( context Ġas ĠFragment Activity ). support FragmentManager , Ġ" Show Ġaddition Ġdata ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġremove Button Ġ= Ġcard View . findViewById < Image Button ? >( R . id . entry _ delete ) ĊĠĠĠĠĠĠĠ Ġ// delete Ġa Ġsum mit Ġentry ĊĠĠĠĠĠĠĠ Ġremove Button ?. setOnClickListener Ġ{ Ġv : ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv ?. context ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Delete Entry Dialog ( it , Ġsum mit , Ġv ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġedit Button Ġ= Ġcard View . findViewById < Image Button ? >( R . id . entry _ edit ) ĊĠĠĠĠĠĠĠ Ġedit Button ?. setOnClickListener Ġ{ Ġ_: ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġupdate Dialog Ġ= Ġsort Filter Helper . let Ġ{ Ġupdate Instance ( sum mit , Ġit , Ġpython Executor ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMainActivity . main Activity ?. support FragmentManager ?. let Ġ{ Ġupdate Dialog . show ( it , Ġ" Sum mit s ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġadd Position Ġ= Ġcard View . findViewById < Image Button ? >( R . id . entry _ add _ coordinate ) ĊĠĠĠĠĠĠĠ Ġset Icon For Position Button ( add Position , Ġsum mit ) ĊĠĠĠĠĠĠĠ Ġadd Position ?. setOnClickListener Ġ{ Ġv : ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġv ?. context ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠSelect On Os Map Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Select On Os Map Activity . SUM MIT _ ID _ EXTRA _ IDENTIFIER , Ġsum mit . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Select On Os Map Activity . SUM MIT _ POSITION , Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv ?. context ?. startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcard View . setOnClickListener Ġ{ Ġv : ĠView ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġv ?. context ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠSum mit Entry Details Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Select On Os Map Activity . SUM MIT _ ID _ EXTRA _ IDENTIFIER , Ġsum mit . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv ?. context ?. startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Delete Entry Dialog ( it : ĠContext , Ġentry : ĠSum mit , Ġv : ĠView ): ĠAlertDialog ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠAlertDialog . Builder ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle (" Delete Ġentry ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage (" Are Ġyou Ġsure Ġyou Ġwant Ġto Ġdelete Ġthis Ġentry ?") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( android . R . string . yes ) Ġ{ Ġ_: ĠDialog Interface ?, Ġ_: ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Entry ( entry , Ġv ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( android . R . string . no ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ_: ĠDialog Interface ?, Ġ_: ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( v . context , Ġv . context . getString ( R . string . delete _ cancel ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setIcon ( android . R . drawable . ic _ dialog _ alert ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdelete Entry ( entry : ĠSum mit , Ġv : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort Filter Helper . database . sum mit Dao ()?. delete ( entry ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( entry . has G ps Track ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry . get G ps Track Path ()?. to File ()?. delete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( entry . has Image Path ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry . image Ids . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry . getImage Path ( it ). to File (). delete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort Filter Helper . entries . remove ( entry ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsum mit Entries Filtered ?. remove ( entry ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( v . context , Ġv . context . getString ( R . string . delete _ entry , Ġentry . name ), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Image ( entry : ĠSum mit , Ġimage Text : ĠRelative Layout , ĠtextView Name : ĠTextView ?, Ġimage : ĠImageView ?, Ġcard View : ĠCard View ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( entry . has Image Path ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Text . setBackground Resource ( R . color . trans luc ent ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Name ?. setTextColor ( Color . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcard View ?. context ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( image Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load (" file ://" Ġ+ Ġentry . getImage Path ( entry . image Ids . first ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Inside () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . NONE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. skip Memory Cache ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Text . set BackgroundColor ( Color . TRANSP ARENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Name ?. setTextColor ( Color . BLACK ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Filter (): ĠFilter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠFilter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġperform Filtering ( char Sequence : ĠCharSequence ?): ĠFilter Results Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchar String Ġ= Ġchar Sequence . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsum mit Entries Filtered Ġ= Ġif Ġ( char String . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Filter Helper . entries ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilter edList Ġ= ĠArrayList < Sum mit >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( entry Ġin Ġsort Filter Helper . entries ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname : ĠString Ġ= Ġentry . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomments : ĠString Ġ= Ġentry . comments ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name . contains ( char String , Ġignore Case Ġ= Ġtrue ) Ġ|| Ġcomments . contains ( char String , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter edList . add ( entry ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter edList ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilter Results Ġ= ĠFilter Results () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter Results . values Ġ= Ġsum mit Entries Filtered ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfilter Results ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġpublish Results ( char Sequence : ĠCharSequence ?, Ġfilter Results : ĠFilter Results ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsum mit Entries Filtered Ġ= Ġfilter Results ?. values Ġas ĠArrayList < Sum mit > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Filtered Sum mit Entries ( entries : ĠList < Sum mit > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsum mit Entries Filtered Ġ= Ġentries Ġas ĠArrayList < Sum mit >? ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder Ġinternal Ġconstructor ( val Ġcard View : ĠCard View ?) Ġ: ĠRecyclerView . ViewHolder ( card View !! ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġset Icon For Position Button ( add Position : ĠImage Button ?, Ġentry : ĠSum mit ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( entry ?. lat Lng Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Position ?. setImage Resource ( R . drawable . ic _ add _ location _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Position ?. setImage Resource ( R . drawable . ic _ edit _ location _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġsum mit Entries Filtered Ġ= Ġsort Filter Helper . entries ĊĠĠĠ Ġ} Ċ }