/*
* Copyright (C) 2013-2014 Sony Computer Science Laboratories, Inc. All Rights Reserved.
* Copyright (C) 2014 Sony Corporation. All Rights Reserved.
*/
package com.sonycsl.Kadecot.call;
import android.content.Context;
import com.sonycsl.Kadecot.server.ServerSettings;
import org.json.JSONException;
import org.json.JSONObject;
public class LocalRequestProcessor extends RequestProcessor {
protected ServerSettings mServerSettings;
private static final String KEY_LATITUDE = "latitude";
private static final String KEY_LONGITUDE = "longitude";
private static final String KEY_ENABLE = "enable";
public LocalRequestProcessor(Context context) {
super(context, Permission.ALL);
mServerSettings = ServerSettings.getInstance(mContext);
}
// server settings
public Response fullInitialize(JSONObject params) {
mServerSettings.fullInitialize();
return new Response(null);
}
public Response setServerLocation(JSONObject params) {
if (params == null || params.length() == 0) {
return new ErrorResponse(ErrorResponse.INVALID_PARAMS_CODE);
}
try {
String lat = params.getString(KEY_LATITUDE);
String lng = params.getString(KEY_LONGITUDE);
mServerSettings.setLocation(lat, lng);
} catch (JSONException e) {
e.printStackTrace();
}
return new Response(null);
}
public Response enableServerNetwork(JSONObject params) {
if (params == null || params.length() < 1) {
return new ErrorResponse(ErrorResponse.INVALID_PARAMS_CODE);
}
try {
boolean enabled = params.getBoolean(KEY_ENABLE);
if (enabled) {
return mServerSettings.registerNetwork();
} else {
return mServerSettings.unregisterNetwork();
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return new ErrorResponse(ErrorResponse.INVALID_PARAMS_CODE, e);
}
}
public Response enableWebSocketServer(JSONObject params) {
if (params == null || params.length() < 1) {
return new ErrorResponse(ErrorResponse.INVALID_PARAMS_CODE);
}
try {
boolean enabled = params.getBoolean(KEY_ENABLE);
mServerSettings.enableWebSocketServer(enabled);
return new Response(true);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return new ErrorResponse(ErrorResponse.INVALID_PARAMS_CODE, e);
}
}
public Response enableJSONPServer(JSONObject params) {
if (params == null || params.length() < 1) {
return new ErrorResponse(ErrorResponse.INVALID_PARAMS_CODE);
}
try {
boolean enabled = params.getBoolean(KEY_ENABLE);
mServerSettings.enableJSONPServer(enabled);
return new Response(true);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return new ErrorResponse(ErrorResponse.INVALID_PARAMS_CODE, e);
}
}
public Response enableSnapServer(JSONObject params) {
if (params == null || params.length() < 1) {
return new ErrorResponse(ErrorResponse.INVALID_PARAMS_CODE);
}
try {
boolean enabled = params.getBoolean(KEY_ENABLE);
mServerSettings.enableSnapServer(enabled);
return new Response(true);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return new ErrorResponse(ErrorResponse.INVALID_PARAMS_CODE, e);
}
}
public Response enablePersistentMode(JSONObject params) {
if (params == null || params.length() < 1) {
return new ErrorResponse(ErrorResponse.INVALID_PARAMS_CODE);
}
try {
boolean enabled = params.getBoolean(KEY_ENABLE);
mServerSettings.enablePersistentMode(enabled);
return new Response(true);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return new ErrorResponse(ErrorResponse.INVALID_PARAMS_CODE, e);
}
}
}