package com.eveningoutpost.dexdrip.UtilityModels; import android.content.Context; import android.os.AsyncTask; import android.util.Log; import com.eveningoutpost.dexdrip.Models.BgReading; import com.eveningoutpost.dexdrip.Models.Calibration; import com.eveningoutpost.dexdrip.Services.SyncService; import java.util.ArrayList; import java.util.List; /** * Created by stephenblack on 12/19/14. */ public class MongoSendTask extends AsyncTask<String, Void, SyncService> { private Context context; public List<BgSendQueue> bgsQueue = new ArrayList<BgSendQueue>(); public List<CalibrationSendQueue> calibrationsQueue = new ArrayList<CalibrationSendQueue>(); private Exception exception; public MongoSendTask(Context pContext, BgSendQueue bgSendQueue) { bgsQueue.add(bgSendQueue); context = pContext; } public MongoSendTask(Context pContext, CalibrationSendQueue calibrationSendQueue) { calibrationsQueue.add(calibrationSendQueue); context = pContext; } public MongoSendTask(Context pContext) { calibrationsQueue = CalibrationSendQueue.mongoQueue(); bgsQueue = BgSendQueue.mongoQueue(); context = pContext; } public SyncService doInBackground(String... urls) { try { List<BgReading> bgReadings = new ArrayList<BgReading>(); List<Calibration> calibrations = new ArrayList<Calibration>(); for (CalibrationSendQueue job : calibrationsQueue) { calibrations.add(job.calibration); } for (BgSendQueue job : bgsQueue) { bgReadings.add(job.bgReading); } if(bgReadings.size() + calibrations.size() > 0) { NightscoutUploader uploader = new NightscoutUploader(context); boolean uploadStatus = uploader.upload(bgReadings, calibrations, calibrations); if (uploadStatus) { for (CalibrationSendQueue calibration : calibrationsQueue) { calibration.markMongoSuccess(); } for (BgSendQueue bgReading : bgsQueue) { bgReading.markMongoSuccess(); } } } } catch (Exception e) { this.exception = e; return null; } return new SyncService(); } // protected void onPostExecute(RSSFeed feed) { // // TODO: check this.exception // // TODO: do something with the feed // } }