package com.eveningoutpost.dexdrip;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.Preference;
import android.preference.PreferenceManager;
import com.eveningoutpost.dexdrip.Models.BgReading;
import com.eveningoutpost.dexdrip.Models.Calibration;
import com.eveningoutpost.dexdrip.Tables.BgReadingTable;
import com.eveningoutpost.dexdrip.Tables.CalibrationDataTable;
import com.eveningoutpost.dexdrip.UtilityModels.CollectionServiceStarter;
import com.eveningoutpost.dexdrip.utils.Preferences;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Created by stephenblack on 11/5/14.
*/
public class NavDrawerBuilder {
public final List<Calibration> last_two_calibrations = Calibration.latest(2);
public final List<BgReading> last_two_bgReadings = BgReading.latestUnCalculated(2);
public final List<BgReading> bGreadings_in_last_30_mins = BgReading.last30Minutes();
public final boolean is_active_sensor = Sensor.isActive();
public final double time_now = new Date().getTime();
public List<Intent> nav_drawer_intents;
public List<String> nav_drawer_options;
public Context context;
public NavDrawerBuilder(Context aContext) {
context = aContext;
this.nav_drawer_intents = nav_drawer_intents();
this.nav_drawer_options = nav_drawer_options();
}
private final List<String> nav_drawer_options() {
List<String> options = new ArrayList<String>();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean IUnderstand = prefs.getBoolean("I_understand", false);
if(IUnderstand == false) {
options.add("Settings");
return options;
}
options.add("xDrip");
if(is_active_sensor) {
options.add("Calibration Graph");
}
options.add("BG Data Table");
options.add("Calibration Data Table");
// options.add("Sensor Data Table");
if(is_active_sensor) {
if(!CollectionServiceStarter.isBTShare(context)) {
if (last_two_bgReadings.size() > 1) {
if (last_two_calibrations.size() > 1) {
if (bGreadings_in_last_30_mins.size() >= 2) {
if (time_now - last_two_calibrations.get(0).timestamp < (1000 * 60 * 60)) { //Put steps in place to discourage over calibration
options.add("Override Calibration");
} else {
options.add("Add Calibration");
}
} else {
options.add("Cannot Calibrate right now");
}
if (last_two_calibrations.get(0).slope >= 1.4 || last_two_calibrations.get(0).slope <= 0.5) {
options.add("Add Double Calibration");
}
} else {
options.add("Add Double Calibration");
}
}
}
options.add("Stop Sensor");
} else { options.add("Start Sensor"); }
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
if(CollectionServiceStarter.isBTWixel(context) || CollectionServiceStarter.isBTShare(context)) {
options.add("Scan for BT");
}
}
options.add("System Status");
options.add("Settings");
// options.add("Fake Numbers");
// options.add("Add Double Calibration");
// options.add("Share Test");
return options;
}
private List<Intent> nav_drawer_intents() {
List<Intent> options = new ArrayList<Intent>();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean IUnderstand = prefs.getBoolean("I_understand", false);
if(IUnderstand == false) {
options.add(new Intent(context, SettingsActivity.class));
return options;
}
options.add(new Intent(context, Home.class));
if(is_active_sensor) {
options.add(new Intent(context, CalibrationGraph.class));
}
options.add(new Intent(context, BgReadingTable.class));
options.add(new Intent(context, CalibrationDataTable.class));
// options.add(new Intent(context, SensorDataTable.class));
if(is_active_sensor) {
if(!CollectionServiceStarter.isBTShare(context)) {
if (last_two_bgReadings.size() > 1) {
if (last_two_calibrations.size() > 1) {
if (bGreadings_in_last_30_mins.size() >= 2) {
if (time_now - last_two_calibrations.get(0).timestamp < (1000 * 60 * 60)) { //Put steps in place to discourage over calibration
options.add(new Intent(context, CalibrationOverride.class));
} else {
options.add(new Intent(context, AddCalibration.class));
}
} else {
options.add(new Intent(context, Home.class));
}
if (last_two_calibrations.get(0).slope >= 1.4 || last_two_calibrations.get(0).slope <= 0.5) {
options.add(new Intent(context, DoubleCalibrationActivity.class));
}
} else {
options.add(new Intent(context, DoubleCalibrationActivity.class));
}
}
}
options.add(new Intent(context, StopSensor.class));
} else { options.add(new Intent(context, StartNewSensor.class)); }
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
if(CollectionServiceStarter.isBTWixel(context) || CollectionServiceStarter.isBTShare(context)) {
options.add(new Intent(context, BluetoothScan.class));
}
}
options.add(new Intent(context, SystemStatus.class));
// options.add(new Intent(context, SettingsActivity.class));
options.add(new Intent(context, Preferences.class));
// options.add(new Intent(context, FakeNumbers.class));
// options.add(new Intent(context, DoubleCalibrationActivity.class));
// options.add(new Intent(context, ShareTest.class));
return options;
}
}