package io.evercam.androidapp.feedback;
import android.content.Context;
import android.util.Log;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import io.evercam.androidapp.utils.Constants;
import io.keen.client.java.KeenClient;
public class StreamFeedbackItem extends FeedbackItem
{
private final static String TAG = "StreamFeedbackItem";
public final static String TYPE_JPG = "jpg";
public final static String TYPE_RTSP = "rtsp";
//Camera stream details;
private String url = "";
private String type = "";
private String camera_id = "";
private Boolean is_success;
private Float load_time;
public StreamFeedbackItem(Context context, String username, Boolean isSuccess)
{
super(context, username);
this.is_success = isSuccess;
}
public void setUrl(String url)
{
this.url = url;
}
public void setCameraId(String cameraId)
{
this.camera_id = cameraId;
}
public void setType(String type)
{
this.type = type;
}
public String getType()
{
return type;
}
public void setLoadTime(Float loadTime)
{
this.load_time = loadTime;
}
public Float getLoad_time()
{
return load_time;
}
public Boolean getIs_success()
{
return is_success;
}
public String getUrl()
{
return url;
}
public String getCamera_id()
{
return camera_id;
}
public String toJson()
{
try
{
JSONObject jsonObject = getBaseJsonObject();
jsonObject.put("camera_id", camera_id);
jsonObject.put("url", url);
jsonObject.put("is_success", is_success);
jsonObject.put("load_time", load_time);
jsonObject.put("type", type);
return jsonObject.toString();
}
catch(JSONException e)
{
Log.e(TAG, e.toString());
}
return "";
}
@Override
public HashMap<String, Object> toHashMap()
{
HashMap<String, Object> event = super.toHashMap();
event.put("camera_id", camera_id);
event.put("url", url);
event.put("is_success", is_success);
event.put("load_time", load_time);
event.put("type", type);
return event;
}
@Override
public void sendToKeenIo(final KeenClient client)
{
if(client != null)
{
final FeedbackItem feedbackItem = this;
new Thread(new Runnable()
{
@Override
public void run()
{
client.addEvent(Constants.KEEN_COLLECTION_STREAM_LOADING_TIME, feedbackItem
.toHashMap());
}
}).start();
}
}
}