package io.evercam.androidapp.feedback;
import android.content.Context;
import java.util.ArrayList;
import java.util.HashMap;
import io.evercam.androidapp.utils.Constants;
import io.evercam.network.discovery.DiscoveredCamera;
import io.keen.client.java.KeenClient;
public class ScanFeedbackItem extends FeedbackItem
{
private Float scan_time;
private ArrayList<DiscoveredCamera> cameraList;
public ScanFeedbackItem(Context context, String username, Float scanTime, ArrayList<DiscoveredCamera> cameraList)
{
super(context, username);
this.scan_time = scanTime;
this.cameraList = cameraList;
}
@Override
public HashMap<String, Object> toHashMap()
{
HashMap<String, Object> map = super.toHashMap();
map.put("scan_time", scan_time);
map.put("cameras_count", cameraList.size());
map.put("timestamp", timestamp);
return map;
}
public HashMap<String, Object> toCameraHashMap(DiscoveredCamera camera)
{
HashMap<String, Object> map = super.toHashMap();
map.put("external_ip", camera.getExternalIp());
map.put("local_ip", camera.getIP());
map.put("model",camera.getModel());
map.put("vendor", camera.getVendor());
map.put("external_http", camera.getExthttp());
map.put("external_rtsp", camera.getExtrtsp());
map.put("internal_http", camera.getHttp());
map.put("internal_rtsp", camera.getRtsp());
map.put("jpg_url",camera.getJpg());
map.put("h264_url", camera.getH264());
map.put("mac_address", camera.getMAC());
map.put("cam_username",camera.getUsername());
map.put("cam_password", camera.getPassword());
map.put("thumbnail_url", camera.getThumbnail());
map.put("timestamp", timestamp);
return map;
}
@Override
public void sendToKeenIo(KeenClient client)
{
//Overload this method with the one without param
}
public void sendToKeenIo()
{
final KeenClient client = KeenHelper.getClient(context);
if(client != null)
{
final FeedbackItem feedbackItem = this;
new Thread(new Runnable()
{
@Override
public void run()
{
client.addEvent(Constants.KEEN_COLLECTION_SCANNING_METRIC, feedbackItem.toHashMap());
if(cameraList.size() != 0)
{
for(DiscoveredCamera camera : cameraList)
{
client.addEvent(Constants.KEEN_COLLECTION_DISCOVERED_CAMERAS, toCameraHashMap(camera));
}
}
}
}).start();
}
}
}