package Ġme . lin us . gp st ie . gps receiver Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . location . Location Manager Ċ import Ġandroid . location . Location Provider Ċ import Ġme . lin us . gp st ie . G ps Location Ċ Ċ /** Ċ Ġ* ĠF akes Ġlocation Ġfor Ġmost ĠApps Ġin ĠAndroid Ċ Ġ* ĠFor Ġthis Ġto Ġwork Ġthis Ġapp Ġneeds : Ċ Ġ* Ġ- ĠThe ĠACCESS _ MOCK _ LOCATION - Permission Ċ Ġ* Ġ- ĠTo Ġbe Ġset Ġas Ġmock ing Ġapp Ġin Ġthe ĠDeveloper - Options Ġin Ġthe ĠAndroid - Settings Ċ Ġ*/ Ċ class ĠMock Provider ( val Ġprovider : ĠString , Ġval Ġcontext : ĠContext ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets ĠLocation Manager ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Location Manager (): ĠLocation Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getSystem Service ( Context . LOCATION _ SERVICE ) Ġas ĠLocation Manager ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegisters Ġthis ĠMock - Provider ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġget Location Manager (). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Test Provider ( provider , Ġtrue , Ġfalse , Ġfalse , Ġfalse , Ġtrue , Ġtrue , Ġtrue , Ġ 0 , Ġ 1 0 0 0 ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEn - Ġor Ġdisables Ġthis ĠMock - Provider ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Enabled ( enabled : ĠBoolean ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠYes , Ġthis Ġsyntax Ġcould Ġbe Ġeasy ly Ġreplaced Ġwith Ġif - else . ĠBut Ġit Ġlooks Ġdo pe Ġ;) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFor Ġmore Ġabout Ġthis Ġtopic Ġsee Ġhttps :// www . dev r ant . io / r ants / 6 7 4 8 5 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( enabled ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġget Location Manager (). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Test Provider Enabled ( provider , Ġenabled ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Test Provider Status ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovider , ĠLocation Provider . AVAILABLE , Ġnull , ĠSystem . currentTimeMillis ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġget Location Manager (). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear Test Provider Enabled ( provider ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear Test Provider Location ( provider ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear Test Provider Status ( provider ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSends Ġnew Ġlocation ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupdate Location ( location : ĠG ps Location ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Location Manager (). set Test Provider Location ( provider , Ġlocation ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSends Ġnew Ġstatus ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupdate Status ( status : ĠInt , Ġtime : ĠLong ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Location Manager (). set Test Provider Status ( provider , Ġstatus , Ġnull , Ġtime ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemoves Ġthis Ġprovider . ĠShould Ġget Ġinvoked Ġwhen Ġapp Ġor Ġservice Ġis Ġshut ting Ġdown ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove () Ġ= Ġget Location Manager (). remove Test Provider ( provider ) Ċ Ċ }