package com.eveningoutpost.dexdrip.UtilityModels;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.provider.BaseColumns;
import com.activeandroid.Model;
import com.activeandroid.annotation.Column;
import com.activeandroid.annotation.Table;
import com.activeandroid.query.Select;
import com.eveningoutpost.dexdrip.Models.Calibration;
import java.util.List;
/**
* Created by stephenblack on 11/7/14.
*/
@Table(name = "CalibrationSendQueue", id = BaseColumns._ID)
public class CalibrationSendQueue extends Model {
@Column(name = "calibration", index = true)
public Calibration calibration;
@Column(name = "success", index = true)
public boolean success;
@Column(name = "mongo_success", index = true)
public boolean mongo_success;
public static CalibrationSendQueue nextCalibrationJob() {
CalibrationSendQueue job = new Select()
.from(CalibrationSendQueue.class)
.where("success = ?", false)
.orderBy("_ID desc")
.limit(1)
.executeSingle();
return job;
}
public static List<CalibrationSendQueue> queue() {
return new Select()
.from(CalibrationSendQueue.class)
.where("success = ?", false)
.orderBy("_ID asc")
.execute();
}
public static List<CalibrationSendQueue> mongoQueue() {
return new Select()
.from(CalibrationSendQueue.class)
.where("mongo_success = ?", false)
.orderBy("_ID asc")
.limit(30)
.execute();
}
public static void addToQueue(Calibration calibration, Context context) {
CalibrationSendQueue calibrationSendQueue = new CalibrationSendQueue();
calibrationSendQueue.calibration = calibration;
calibrationSendQueue.success = false;
calibrationSendQueue.mongo_success = false;
calibrationSendQueue.save();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
if (prefs.getBoolean("cloud_storage_mongodb_enable", false) || prefs.getBoolean("cloud_storage_api_enable", false)) {
MongoSendTask task = new MongoSendTask(context, calibrationSendQueue);
task.execute();
}
}
public void markMongoSuccess() {
mongo_success = true;
save();
}
}