package Ġcom . co zo . co z om vp . main activity . list fragment Ċ Ċ import Ġcom . co zo . co z om vp . dat apro vider . DataProvider Ċ import Ġcom . co zo . co z om vp . dat apro vider . DataProvider Interface Ċ import Ġcom . co zo . co z om vp . main activity . MainActivity Ċ import Ġcom . co zo . co z om vp . network api .* Ċ Ċ import Ġcom . h ann es dor fm ann . mos by 3 . mvp . M vp Base Presenter Ċ Ċ class ĠList Presenter Ġ: ĠM vp Base Presenter < List Fragment View >(), ĠList Interfaces . Presenter , ĊĠĠĠĠĠĠĠ ĠData Provider Interface . List Fragment Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm DataProvider : ĠData Provider ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm User Location Ġ: ĠNetwork Model . Location ĊĊĠĠĠ Ġoverride Ġfun Ġdis h New ( rest ID : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Restaurant Items Card Data ( rest ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetActivity (): ĠMainActivity ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġm Activity Ġ: ĠMainActivity ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif View Attached Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity Ġ= Ġit . on Activity Required () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġm Activity ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Rest Card Data Request Completed ( items : ĠList < Network Model . Menu Metadata >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif View Attached Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrest List Size Ġ= Ġitems . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Rest aurants DataTo Cards ( items ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Rest Card Data Request Failed ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdo Ġsomething Ġlater ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Part Card Data Request Completed ( cards : ĠList < Network Model . Partner Metadata >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif View Attached Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpart List Size Ġ= Ġcards . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Part ners DataTo Cards ( cards ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Part Card Data Request Failed ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdo Ġsomething Ġlater ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Rest Items Data Request Completed ( items : ĠList < Network Model . Menu Metadata >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif View Attached Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Items DataTo Cards ( items ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Rest Items Data Request Failed ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdo Ġsomething Ġlater ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġ Ġfun Ġon User Location Data Available ( location : ĠNetwork Model . Location ){ ĊĠĠĠĠĠĠĠ Ġget Near by Rest aurants Card Data ( location ) ĊĠĠĠĠĠĠĠ Ġm User Location Ġ= Ġlocation ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Rest Location Data Available ( location : ĠNetwork Model . Location ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Near by Delivery Part ners Card Data ( location , Ġm User Location ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġretrieves Ġdata Ġfor Ġall Ġitems Ġfrom Ġa Ġgiven Ġrestaurant Ġfrom ĠData ĠProvider Ġand Ġsends Ġthem Ġto ĊĠĠĠ Ġ// Ġlist Ġfragment . ĊĠĠĠ Ġprivate Ġfun Ġget Restaurant Items Card Data ( rest ID : ĠString ){ ĊĠĠĠĠĠĠĠ Ġm DataProvider Ġ= ĠData Provider ( this ) ĊĠĠĠĠĠĠĠ Ġm DataProvider ?. provide Restaurant Items ( rest ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġretrieves Ġdata Ġfor Ġnearby Ġrest aurants Ġfrom ĠData ĠProvider Ġand Ġsends Ġthem Ġto Ġthe Ġlist Ġfragment . ĊĠĠĠ Ġprivate Ġfun Ġget Near by Rest aurants Card Data ( location : ĠNetwork Model . Location ){ ĊĠĠĠĠĠĠĠ Ġm DataProvider Ġ= ĠData Provider ( this ) ĊĠĠĠĠĠĠĠ Ġm DataProvider ?. provide Rest aurants Card Data ( location , 1 0 0 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġretrieves Ġlist Ġof Ġnearby Ġdelivery Ġpart ners Ġfrom ĠData ĠProvider Ġand Ġsends Ġthem Ġto Ġlist ĊĠĠĠ Ġ// Ġfragment . ĊĠĠĠ Ġprivate Ġfun Ġget Near by Delivery Part ners Card Data ( rest Location : ĠNetwork Model . Location , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Location : ĠNetwork Model . Location ){ ĊĠĠĠĠĠĠĠ Ġm DataProvider Ġ= ĠData Provider ( this ) ĊĠĠĠĠĠĠĠ Ġm DataProvider ?. provide Delivery Part ners List ( rest Location , Ġuser Location ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrest List Size Ġ: ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġpart List Size Ġ: ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġ} Ċ }