package com.cfap.cfadevicemanager.services;
import android.app.IntentService;
import android.content.Intent;
import android.util.Log;
import com.cfap.cfadevicemanager.dbmodels.DataTrackerDBModel;
import com.cfap.cfadevicemanager.dbmodels.DatabaseHelper;
import com.cfap.cfadevicemanager.models.AppTrafficRecord;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.text.SimpleDateFormat;
import java.util.List;
/**
* Created by Shreya Jagarlamudi on 01/10/15.
*/
public class DataUsageService extends IntentService {
private List<AppTrafficRecord> trafficRecords;
private DatabaseHelper myDbHelp;
private String TAG = "DataUsageService";
private String KEY_IMEI = "imei";
private String KEY_Type = "type";
private String KEY_APP_NAME = "APP_NAME";
private String KEY_WIFI_DATA = "WIFI_DATA";
private String KEY_CELLULAR_DATA = "CELLULAR_DATA";
private String DATA_USAGE_BY_APP = "DATA_USAGE_BY_APP";
/**
* Creates an IntentService. Invoked by your subclass's constructor.
*/
public DataUsageService() {
super("DataUsageService");
}
@Override
public void onCreate() {
super.onCreate();
myDbHelp = DatabaseHelper.getInstance(this);
trafficRecords = DataTrackerDBModel.getAppRecordsForToday(this);
}
@Override
protected void onHandleIntent(Intent intent) {
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS a");
ISTDateTime ist = new ISTDateTime();
String connTime = formatter.format(ist.getIST());
JSONObject json = new JSONObject();
JSONArray jArray = new JSONArray();
try {
json.put(KEY_Type, "DataUsage");
json.put(KEY_IMEI, myDbHelp.getImei());
for(int i=0; i<trafficRecords.size(); i++) {
AppTrafficRecord appTrafficRecord = trafficRecords.get(i);
JSONObject subjson = new JSONObject();
subjson.put(KEY_APP_NAME, appTrafficRecord.getName());
subjson.put(KEY_WIFI_DATA, appTrafficRecord.getWifiData());
subjson.put(KEY_CELLULAR_DATA, appTrafficRecord.getNetworkData());
jArray.put(subjson);
}
json.put(DATA_USAGE_BY_APP, jArray);
String jString = json.toString();
Log.e(TAG, "DataUsage json: " + jString);
myDbHelp.insertTask(connTime, "DataUsage", jString, "pending");
new FetchFromDatabase(this, "myimei");
} catch (JSONException e) {
e.printStackTrace();
}
}
}