package nl.sense_os.service.constants;
import android.content.Context;
/**
* Contains all preference keys for the SharedPreferences that are used by the Sense library.<br/>
* <br/>
* Nota bene: there are three separate preference files:
* <ul>
* <li>{@link #MAIN_PREFS}, containing the settings for the sensors and sample and sync rates;</li>
* <li>{@link #AUTH_PREFS}, containing all user-related stuff like login, session, cached sensor
* IDs;</li>
* <li>{@link #STATUS_PREFS}, containing settings about which sensors are activated.</li>
* </ul>
*
* To access the settings, you should not uses the default SharedPreference, but use the names of
* the right preference file instead:
*
* <pre>
* // preferences about sensor settings are store in the main prefs
* SharedPreferences mainPrefs = getSharedPreferences(SensePrefs.MAIN_PREFS, MODE_PRIVATE);
* boolean useGps = mainPrefs.getBoolean(Main.Location.GPS, true);
*
* // prefs about login are stored in auth prefs
* SharedPreferences authPrefs = getSharedPreferences(SensePrefs.AUTH_PREFS, MODE_PRIVATE);
* String cookie = mainPrefs.getBoolean(Auth.LOGIN_COOKIE, null);
* </pre>
*
* @author Steven Mulder <steven@sense-os.nl>
*/
public class SensePrefs {
/**
* Keys for the authentication-related preferences of the Sense Platform
*/
public static class Auth {
/**
* Key for login preference for session cookie.
*
* @see SensePrefs#AUTH_PREFS
*/
public static final String LOGIN_COOKIE = "login_cookie";
/**
*Key for login preference for session id.
*
* @see SensePrefs#AUTH_PREFS
*/
public static final String LOGIN_SESSION_ID = "session_id";
/**
* Key for login preference for email address.
*
* @see SensePrefs#AUTH_PREFS
*/
public static final String LOGIN_USERNAME = "login_mail";
/**
* Key for login preference for hashed password.
*
* @see SensePrefs#AUTH_PREFS
*/
public static final String LOGIN_PASS = "login_pass";
/**
* Key for storing the online sensor list for this device (type of JSONArray).
*
* @see #SENSOR_LIST_COMPLETE
* @see SensePrefs#AUTH_PREFS
* @deprecated
*/
public static final String SENSOR_LIST = "sensor_list";
/**
* Key for storing the online sensor list for this user (type of JSONArray).
*
* @see #SENSOR_LIST
* @see SensePrefs#AUTH_PREFS
*/
public static final String SENSOR_LIST_COMPLETE = "sensor_list_complete";
/**
* Key for storing the retrieval time of device's online sensor list.
*
* @see #SENSOR_LIST_COMPLETE_TIME
* @see SensePrefs#AUTH_PREFS
* @deprecated
*/
public static final String SENSOR_LIST_TIME = "sensor_list_timestamp";
/**
* Key for storing the retrieval time of complete online sensor list.
*
* @see #SENSOR_LIST_TIME
* @see SensePrefs#AUTH_PREFS
*/
public static final String SENSOR_LIST_COMPLETE_TIME = "sensor_list_complete_timestamp";
/**
* Key for storing the online device id.
*
* @see SensePrefs#AUTH_PREFS
*/
public static final String DEVICE_ID = "device_id";
/**
* Key for storing the retrieval time of the online device id.
*
* @see SensePrefs#AUTH_PREFS
*/
public static final String DEVICE_ID_TIME = "device_id_timestamp";
/**
* Key for storing the online device type.
*
* @see SensePrefs#AUTH_PREFS
*/
public static final String DEVICE_TYPE = "device_type";
/**
* Key for storing the IMEI of the phone.
*
* @see SensePrefs#AUTH_PREFS
*/
public static final String PHONE_IMEI = "phone_imei";
/**
* Key for storing the type of the phone.
*
* @see SensePrefs#AUTH_PREFS
*/
public static final String PHONE_TYPE = "phone_type";
/**
* Key for storing if gcm registration_id
*
* @see SensePrefs#AUTH_PREFS
*/
public static final String GCM_REGISTRATION_ID = "gcm_registration_id";
}
/**
* Keys for the main Sense Platform service preferences
*/
public static class Main {
public static class Advanced {
/**
* Key to use the development version of CommonSense.
*
* @see SensePrefs#AUTH_PREFS
*/
public static final String DEV_MODE = "devmode";
/**
* Key for preference that toggles use of compression for transmission. Default is true.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String COMPRESS = "compression";
/**
* Key for preference that enables local storage, making the sensor data available to
* other apps through a ContentProvider. Default is true.
*
* @see SensePrefs#MAIN_PREFS
* @deprecated Local storage is always on.
*/
public static final String LOCAL_STORAGE = "local_storage";
/**
* Key for preference regarding storage option
*/
public static final String STORAGE = "storage";
/**
* Key for preference regarding battery state when transfer should occur
*/
public static final String BATTERY = "battery";
/**
* Key for preference that enables communication with CommonSense. Disable this to work
* in local-only mode. Default is true.
*/
public static final String USE_COMMONSENSE = "use_commonsense";
/**
* Key for preference that enables the location feedback sensor. Enable this to
* participate in Pim's location feedback test. Default is false.
*/
public static final String LOCATION_FEEDBACK = "location_feedback";
/**
* Key for preference that enables Agostino mode. Enable this to participate in
* Agostino's saliency test. Default is false.
*/
public static final String AGOSTINO = "agostino_mode";
/**
* Key for preference that enables energy saving mode when using mobile Internet.
* When energy saving mode is on data will be uploaded every half an hour.
* Default is true.
* @see SensePrefs#MAIN_PREFS
*/
public static final String MOBILE_INTERNET_ENERGY_SAVING_MODE = "mobile_internet_energy_saving_mode";
/**
* Key for preference that enables data upload on wifi only.
* Default is false.
* @see SensePrefs#MAIN_PREFS
*/
public static final String WIFI_UPLOAD_ONLY = "wifi_upload_only";
/**
* Key for preference that enables upload only when device is charging
* Default is true
*/
public static final String IS_CHARGING_ONLY = "is_charging_only";
/**
* Key for preference that sets an inferior limit of the battery life percentage for when the data transmission should be postponed
* Default is 40
*/
public static final String BATTERY_THRESHOLD = "battery_threshold";
/**
* Key for preference that enables data upload/dwd option (i.e. wifi only or any network )
* */
public static final String MOBILE_NETWORK_UPLOAD = "network_upload";
public static final String MOBILE_NETWORK_DOWNLOAD = "network_dwd";
}
public static class Ambience {
/**
* Key for preference that toggles use of light sensor in ambience sensing.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String LIGHT = "ambience_light";
/**
* Key for preference that toggles use of camera light sensor in ambience sensing.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String CAMERA_LIGHT = "ambience_camera_light";
/**
* Key for preference that toggles use of the microphone in ambience sensing.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String MIC = "ambience_mic";
/**
* Key for preference that toggles audio recording ambience sensing.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String RECORD_AUDIO = "ambience_record_audio";
/**
* Key for preference that toggles use of the audio spectrum in ambience sensing.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String AUDIO_SPECTRUM = "ambience_audio_spectrum";
/**
* Key for preference that toggles use of the pressure sensor in ambience sensing.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String PRESSURE = "ambience_pressure";
/**
* Key for preference that toggles use of the temperature sensor in ambience sensing.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String TEMPERATURE = "ambience_temperature";
/**
* Key for preference that toggles use of the magnetic field sensor in ambience sensing.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String MAGNETIC_FIELD = "ambience_magnetic_field";
/**
* Key for preference that toggles use of the relative humidity sensor in ambience
* sensing.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String HUMIDITY = "ambience_humidity";
/**
* Key for preference that toggles "burst-mode" for the noise sensor
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String BURSTMODE = "ambience_burstmode";
/**
* Key for preference that toggles whether to upload and store burst samples.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String DONT_UPLOAD_BURSTS = "dont upload bursts";
}
public static class DevProx {
/**
* Key for preference that toggles use of Bluetooth in the Device Proximity sensor.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String BLUETOOTH = "proximity_bt";
/**
* Key for preference that toggles use of Wi-Fi in the Device Proximity sensor.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String WIFI = "proximity_wifi";
/**
* Key for preference that toggles use of NFC in the Device Proximity sensor.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String NFC = "proximity_nfc";
}
public static class External {
public static class MyGlucoHealth {
/**
* Key for preference that toggles use of the MyGlucohealth sensor.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String MAIN = "myglucohealth";
}
public static class TanitaScale {
/**
* Key for preference that toggles use of the Tanita scale sensor.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String MAIN = "tanita_scale";
}
public static class ZephyrBioHarness {
/**
* Key for preference that toggles use of the Zephyr BioHarness.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String MAIN = "zephyrBioHarness";
/**
* Key for preference that toggles use of the Zephyr BioHarness Accelerometer.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String ACC = "zephyrBioHarness_acc";
/**
* Key for preference that toggles use of the Zephyr BioHarness Heart rate.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String HEART_RATE = "zephyrBioHarness_heartRate";
/**
* Key for preference that toggles use of the Zephyr BioHarness Temperature.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String TEMP = "zephyrBioHarness_temp";
/**
* Key for preference that toggles use of the Zephyr BioHarness Respiration rate.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String RESP = "zephyrBioHarness_resp";
/**
* Key for preference that toggles use of the Zephyr BioHarness worn status.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String WORN_STATUS = "zephyrBioHarness_wornStatus";
/**
* Key for preference that toggles use of the Zephyr BioHarness battery level.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String BATTERY = "zephyrBioHarness_battery";
}
public static class ZephyrHxM {
/**
* Key for preference that toggles use of the Zephyr HxM.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String MAIN = "zephyrHxM";
/**
* Key for preference that toggles use of the Zephyr HxM speed.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String SPEED = "zephyrHxM_speed";
/**
* Key for preference that toggles use of the Zephyr HxM heart rate.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String HEART_RATE = "zephyrHxM_heartRate";
/**
* Key for preference that toggles use of the Zephyr HxM battery.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String BATTERY = "zephyrHxM_battery";
/**
* Key for preference that toggles use of the Zephyr HxM distance.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String DISTANCE = "zephyrHxM_distance";
/**
* Key for preference that toggles use of the Zephyr HxM strides.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String STRIDES = "zephyrHxM_strides";
}
public static class OBD2Sensor {
/**
* Key for preference that toggles use of the OBD-II sensor.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String MAIN = "obd2sensor";
}
}
public static class Location {
/**
* Key for preference that toggles use of GPS in location sensor.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String GPS = "location_gps";
/**
* Key for preference that toggles use of Network in location sensor.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String NETWORK = "location_network";
/**
* Key for preference that toggles use of sensor fusion to toggle th GPS usage.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String AUTO_GPS = "automatic_gps";
}
public static class Motion {
/**
* Key for preference that toggles use of Bluetooth in the DeviceProximity sensor.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String FALL_DETECT = "motion_fall_detector";
/**
* Key for preference that toggles use of Bluetooth in the DeviceProximity sensor.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String FALL_DETECT_DEMO = "motion_fall_detector_demo";
/**
* Key for preference that toggles "epi-mode", drastically changing motion sensing
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String EPIMODE = "epimode";
/**
* Key for preference that toggles "burst-mode", drastically changing motion sensing
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String BURSTMODE = "burstmode";
/**
* Key for preference that determines whether to unregister the motion sensor between
* samples. Nota bene: unregistering the sensor breaks the screen rotation on some
* phones (e.g. Nexus S).
*
* @see SensePrefs#MAIN_PREFS
*/
/**
* Key for preference that toggles whether to upload and store burst samples.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String DONT_UPLOAD_BURSTS = "dont upload bursts";
/**
* Key for preference that determines the burst duration. Duration is in milliseconds.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String BURST_DURATION = "burst_duration";
public static final String UNREG = "motion_unregister";
/**
* Key for preference that toggles motion energy sensing, which measures average kinetic
* energy over a sample period.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String MOTION_ENERGY = "motion_energy";
/**
* Key for preference that enables fix that re-registers the motion sensor when the
* screen turns off.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String SCREENOFF_FIX = "screenoff_fix";
/**
* Key for preference that toggles the use of the gyroscope
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String GYROSCOPE = "gyroscope";
/**
* Key for preference that toggles the use of the accelerometer
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String ACCELEROMETER = "accelerometer";
/**
* Key for preference that toggles the use of the orientation sensor
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String ORIENTATION = "orientation";
/**
* Key for preference that toggles the use of the linear acceleration sensor
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String LINEAR_ACCELERATION = "linear_acceleration";
}
public static class PhoneState {
/**
* @see SensePrefs#MAIN_PREFS
*/
public static final String BATTERY = "phonestate_battery";
/**
* @see SensePrefs#MAIN_PREFS
*/
public static final String SCREEN_ACTIVITY = "phonestate_screen_activity";
/**
* @see SensePrefs#MAIN_PREFS
*/
public static final String PROXIMITY = "phonestate_proximity";
/**
* @see SensePrefs#MAIN_PREFS
*/
public static final String IP_ADDRESS = "phonestate_ip";
/**
* @see SensePrefs#MAIN_PREFS
*/
public static final String DATA_CONNECTION = "phonestate_data_connection";
/**
* @see SensePrefs#MAIN_PREFS
*/
public static final String UNREAD_MSG = "phonestate_unread_msg";
/**
* @see SensePrefs#MAIN_PREFS
*/
public static final String SERVICE_STATE = "phonestate_service_state";
/**
* @see SensePrefs#MAIN_PREFS
*/
public static final String SIGNAL_STRENGTH = "phonestate_signal_strength";
/**
* @see SensePrefs#MAIN_PREFS
*/
public static final String CALL_STATE = "phonestate_call_state";
/**
* @see SensePrefs#MAIN_PREFS
* */
public static final String FOREGROUND_APP = "foreground_app";
/**
* @see SensePrefs#MAIN_PREFS
*/
public static final String INSTALLED_APPS = "installed_apps";
}
public static class Quiz {
/**
* Key for preference that sets the interval between pop quizzes.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String RATE = "popquiz_rate";
/**
* Key for preference that sets the silent mode for pop quizzes.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String SILENT_MODE = "popquiz_silent_mode";
/**
* Key for generic preference that starts an update of the quiz questions when clicked.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String SYNC = "popquiz_sync";
/**
* Key for preference that holds the last update time of the quiz questions with
* CommonSense.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String SYNC_TIME = "popquiz_sync_time";
}
/**
* Key for preference that controls sample frequency of the sensors.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String SAMPLE_RATE = "commonsense_rate";
/**
* Key for preference that controls sync frequency with CommonSense.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String SYNC_RATE = "sync_rate";
/**
* Key for preference that saves the last running services.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String LAST_STATUS = "last_status";
/**
* Key for preference that stores a flag for first login.
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String LAST_LOGGED_IN = "never_logged_in";
/**
* Key for preference that stores a timestamp for last time the sensors registration was
* verified
*
* @see SensePrefs#MAIN_PREFS
*/
public static final String LAST_VERIFIED_SENSORS = "verified_sensors";
/**
* Key for storing the application key
*
* @see SensePrefs#AUTH_PREFS
*/
public static final String APPLICATION_KEY = "application_key";
}
/**
* Keys for the status preferences of the Sense Platform service
*/
public static class Status {
/**
* Key for the main status of the sensors. Set to <code>false</code> to disable all the
* sensing components.
*
* @see SensePrefs#STATUS_PREFS
*/
public static final String MAIN = "main service status";
/**
* Key for the status of the "ambience" sensors. Set to <code>true</code> to enable sensing.
*
* @see SensePrefs#STATUS_PREFS
*/
public static final String AMBIENCE = "ambience component status";
/**
* Key for the status of the "device proximity" sensors. Set to <code>true</code> to enable
* sensing.
*
* @see SensePrefs#STATUS_PREFS
*/
public static final String DEV_PROX = "device proximity component status";
/**
* Key for the status of the external Bluetooth sensors. Set to <code>true</code> to enable
* sensing.
*
* @see SensePrefs#STATUS_PREFS
*/
public static final String EXTERNAL = "external services component status";
/**
* Key for the status of the location sensors. Set to <code>true</code> to enable sensing.
*
* @see SensePrefs#STATUS_PREFS
*/
public static final String LOCATION = "location component status";
/**
* Key for the status of the motion sensors. Set to <code>true</code> to enable sensing.
*
* @see SensePrefs#STATUS_PREFS
*/
public static final String MOTION = "motion component status";
/**
* Key for the status of the "phone state" sensors. Set to <code>true</code> to enable
* sensing.
*
* @see SensePrefs#STATUS_PREFS
*/
public static final String PHONESTATE = "phone state component status";
/**
* Key for the status of the questionnaire. Set to <code>true</code> to enable it.
*
* @see SensePrefs#STATUS_PREFS
* @deprecated Sense does not support the questionnaire anymore
*/
public static final String POPQUIZ = "pop quiz component status";
/**
* Key for preference to automatically start the Sense service on boot.
*
* @see SensePrefs#STATUS_PREFS
*/
public static final String AUTOSTART = "autostart";
/**
* Key for preference to pause sensing until the next charge.
*
* @see SensePrefs#STATUS_PREFS
*/
public static final String PAUSED_UNTIL_NEXT_CHARGE = "paused until next charge status";
}
public static class SensorSpecifics {
public static class Loudness {
/**
* Key for learned value of total silence..
*/
public static final String TOTAL_SILENCE = "total_silence";
/**
* Key for learned value of highest loudness.
*/
public static final String LOUDEST = "loudest";
}
public static class AutoCalibratedNoise {
/**
* Key for learned value of total silence..
*/
public static final String TOTAL_SILENCE = "AutoCalibratedNoise.total_silence";
/**
* Key for learned value of highest loudness.
*/
public static final String LOUDEST = "AutoCalibratedNoise.loudest";
}
}
/**
* Name of the shared preferences file used for storing CommonSense authentication data. Use
* {@link Context#MODE_PRIVATE}.
*
* @see #MAIN_PREFS_PREFS
* @see #STATUS_PREFS
*/
public static final String AUTH_PREFS = "authentication";// "login";
/**
* Name of the main preference file, used for storing the settings for the Sense service.
*
* @see #AUTH_PREFS
* @see #STATUS_PREFS
*/
public static final String MAIN_PREFS = "main";
/**
* Name of shared preferences file holding the desired status of the Sense service.
*
* @see #AUTH_PREFS
* @see #MAIN_PREFS
*/
public static final String STATUS_PREFS = "service_status_prefs";
/**
* Name of the sensor specifics file, used for storing the settings for the Sense service.
*
* @see #AUTH_PREFS
* @see #STATUS_PREFS
*/
public static final String SENSOR_SPECIFICS = "sensor_specifics";
private SensePrefs() {
// private constructor to prevent instantiation
}
}