package client.smrtms.com.smrtms_client.controller;
import android.content.Context;
import android.util.Log;
import java.util.Timer;
import java.util.TimerTask;
import client.smrtms.com.smrtms_client.tokens.FriendListToken;
import client.smrtms.com.smrtms_client.tokens.UserUpdateToken;
/**
* Created by effi on 6/9/15.
* This class sends periodic Tokens to the Server
*/
public class ServerTask
{
private GPSTracker gpsTracker;
public Timer userUpdateTimer;
public Timer friendListUpdateTimer;
public ServerTask(Context context)
{
gpsTracker = new GPSTracker(context);
}
public void getNewFriendList()
{
FriendListToken reqFL = new FriendListToken();
JSONParser<FriendListToken> FLjson = new JSONParser<>();
String request = FLjson.JSONWriter(reqFL);
Client.getInstance().WriteMsg(request);
}
public void userUpdates()
{
UserUpdateToken userUpdateToken = new UserUpdateToken(LoginUser.getInstance().getLatitude(), LoginUser.getInstance().getLongitude());
JSONParser<UserUpdateToken> Writer = new JSONParser<>();
String toSend = Writer.JSONWriter(userUpdateToken);
Client.getInstance().WriteMsg(toSend);
}
public void startUpdates()
{
userUpdateTimer = new Timer();
userUpdateTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
userUpdates();
}
}, 0, 10000);
friendListUpdateTimer = new Timer();
friendListUpdateTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
getNewFriendList();
}
}, 4000, 20000);
}
public void stopUpdates()
{
userUpdateTimer.cancel();
friendListUpdateTimer.cancel();
gpsTracker.stopUsingGPS();
}
public GPSTracker getGpsTracker() {
return gpsTracker;
}
public void setGpsTracker(GPSTracker gpsTracker) {
this.gpsTracker = gpsTracker;
}
}