package Ġcom . example . food delivery . Activity Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . food delivery . Adapter . Pop ular Adapter Ċ import Ġcom . example . food delivery . Domain . Food Domain Ċ import Ġcom . example . food delivery . Network . Dto s . Food Dto Ċ import Ġcom . example . food delivery . Network . RestApi . Api Interface Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġcom . example . food delivery . R Ċ Ċ class ĠList Search Food Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġre cyclerView Food List : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠRecyclerView . Adapter < *> ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsearch textView : ĠTextView ?= null ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ list _ search _ food ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlinear LayoutManager Ġ= ĠLinearLayoutManager ( application Context , ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġre cyclerView Food List Ġ= ĠfindViewById ( R . id . food _ recyclerview ) ĊĠĠĠĠĠĠĠ Ġre cyclerView Food List ?. layout Manager Ġ= Ġlinear LayoutManager ĊĊĠĠĠĠĠĠĠ Ġsearch textView = findViewById ( R . id . search _ text ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ: Bundle Ġ?= intent . extras ĊĠĠĠĠĠĠĠ Ġif Ġ( bundle != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearch Text Ġ= Ġintent . extras ?. get (" search text ") Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsearch textView !!. text =" Results Ġfor Ġ$ search Text " ĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapi Interface = ĠApi Interface . create (). getAll Food () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Interface . enqueue ( Ġobject Ġ: ĠCallback < List < Food Dto >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < List < Food Dto >> ?, Ġresponse : ĠResponse < List < Food Dto >> ?) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response ?. body () Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( response . body ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ()?. let Ġ{ Ġshow Search Food ( it , search Text ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < List < Food Dto >> ?, Ġt : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( t ?. message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Search Food ( food Dto List : ĠList < Food Dto >, Ġsearch Text : String ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfood list : ĠArrayList < Food Domain > Ġ= ĠArrayList < Food Domain >() ĊĠĠĠĠĠĠĠ Ġval Ġcategory Food : List < Food Dto > Ġ= Ġfood Dto List . filter Ġ{ Ġfood Dto Ġ-> Ġfood Dto . name . lowercase (). contains ( search Text . lowercase ()) } ĊĊĠĠĠĠĠĠĠ Ġcategory Food . forEach Ġ{ Ġfood Dto : ĠFood Dto Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfood list . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFood Domain ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġfood Dto . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpic Ġ= Ġfood Dto . pic , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġfood Dto . description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfee Ġ= Ġfood Dto . price ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠPop ular Adapter ( food list ) ĊĠĠĠĠĠĠĠ Ġre cyclerView Food List ?. adapter Ġ= Ġadapter ĊĠĠĠ Ġ} Ċ }