/*
* Copyright (C) 2010-2017 Stichting Akvo (Akvo Foundation)
*
* This file is part of Akvo Flow.
*
* Akvo Flow is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Akvo Flow is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Akvo Flow. If not, see <http://www.gnu.org/licenses/>.
*/
package org.akvo.flow.util;
/**
* Class to hold all public constants used in the application
*
* @author Christopher Fagiani
*/
public class ConstantUtil {
/**
* file system constants
*/
public static final String FILE_SURVEY_LOCATION_TYPE = "file";
public static final String ARCHIVE_SUFFIX = ".zip";
public static final String JPG_SUFFIX = ".jpg";
public static final String PNG_SUFFIX = ".png";
public static final String VIDEO_SUFFIX = ".mp4";
public static final String XML_SUFFIX = ".xml";
public static final String BOOTSTRAP_DB_FILE = "dbinstructions.sql";
public static final String PROCESSED_OK_SUFFIX = ".processed";
public static final String PROCESSED_ERROR_SUFFIX = ".error";
public static final String BOOTSTRAP_ROLLBACK_FILE = "rollback.sql";
public static final String STACKTRACE_FILENAME = "err-";
public static final String STACKTRACE_SUFFIX = ".stacktrace";
public static final String CASCADE_RES_SUFFIX = ".sqlite.zip";
public static final String DOT_SEPARATOR = ".";
/**
* survey file locations
*/
public static final String RESOURCE_LOCATION = "res";
public static final String FILE_LOCATION = "sdcard";
/**
* size limits
*/
public static final String SPACE_WARNING_MB_LEVELS = "100, 50, 25, 10, 5, 1";
/**
* question types
*/
public static final String FREE_QUESTION_TYPE = "free";
public static final String OPTION_QUESTION_TYPE = "option";
public static final String GEO_QUESTION_TYPE = "geo";
public static final String VIDEO_QUESTION_TYPE = "video";
public static final String PHOTO_QUESTION_TYPE = "photo";
public static final String SCAN_QUESTION_TYPE = "scan";
public static final String STRENGTH_QUESTION_TYPE = "strength";
public static final String DATE_QUESTION_TYPE = "date";
public static final String CASCADE_QUESTION_TYPE = "cascade";
public static final String GEOSHAPE_QUESTION_TYPE = "geoshape";
public static final String SIGNATURE_QUESTION_TYPE = "signature";
public static final String CADDISFLY_QUESTION_TYPE = "caddisfly";
/**
* help types
*/
public static final String VIDEO_HELP_TYPE = "video";
public static final String IMAGE_HELP_TYPE = "image";
public static final String TIP_HELP_TYPE = "tip";
/**
* response types
*/
public static final String VALUE_RESPONSE_TYPE = "VALUE";
public static final String IMAGE_RESPONSE_TYPE = "IMAGE";
public static final String VIDEO_RESPONSE_TYPE = "VIDEO";
public static final String GEO_RESPONSE_TYPE = "GEO";
public static final String DATE_RESPONSE_TYPE = "DATE";
public static final String CASCADE_RESPONSE_TYPE = "CASCADE";
public static final String OPTION_RESPONSE_TYPE = "OPTION";
public static final String SIGNATURE_RESPONSE_TYPE = "SIGNATURE";
public static final String CADDISFLY_RESPONSE_TYPE = "CADDISFLY";
/**
* validation types
*/
public static final String NUMERIC_VALIDATION_TYPE = "numeric";
public static final String NAME_VALIDATION_TYPE = "name";
/**
* scoring types
*/
public static final String NUMERIC_SCORING = "numeric";
public static final String TEXT_MATCH_SCORING = "textmatch";
/**
* survey types
*/
public static final String SURVEY_TYPE = "survey";
/**
* media question support
*/
public static final String MEDIA_FILE_KEY = "filename";
/**
* Signature result data
*/
public static final String SIGNATURE_IMAGE = "signature_image";
/**
* Plot measurement result data
*/
public static final String GEOSHAPE_RESULT = "geoshapeResult";
public static final String EXTRA_ALLOW_POINTS = "allowPoints";
public static final String EXTRA_ALLOW_LINE = "allowLine";
public static final String EXTRA_ALLOW_POLYGON = "allowPolygon";
public static final String EXTRA_MANUAL_INPUT = "manualInput";
/**
* keys for saved state and bundle extras
*/
public static final String USER_ID_KEY = "UID";
public static final String SURVEY_ID_KEY = "SID";
public static final String RESPONDENT_ID_KEY = "survey_respondent_id";
public static final String READONLY_KEY = "readonly";
public static final String SINGLE_SURVEY_KEY = "single_survey";
public static final String SURVEY_GROUP = "survey_group";
public static final String SURVEYED_LOCALE_ID = "surveyed_locale_id";
/**
* settings keys
*/
public static final String SURVEY_LANG_SETTING_KEY = "survey.language";//user selected languages
public static final String SURVEY_LANG_PRESENT_KEY = "survey.languagespresent";
public static final String CELL_UPLOAD_SETTING_KEY = "data.cellular.upload";
public static final String SCREEN_ON_KEY = "screen.keepon";
public static final String DEVICE_IDENT_KEY = "device.identifier";
public static final String MAX_IMG_SIZE = "media.img.maxsize";
/**
* intents
*/
public static final String DATA_AVAILABLE_INTENT = "org.akvo.flow.DATA_SUBMITTED";
public static final String GPS_STATUS_INTENT = "com.eclipsim.gpsstatus.VIEW";
public static final String BARCODE_SCAN_INTENT = "com.google.zxing.client.android.SCAN";
/**
* zxing barcode extra keys
*/
public static final String BARCODE_CONTENT = "SCAN_RESULT";
/**
* language codes
*/
public static final String ENGLISH_CODE = "en";
/**
* "code" to prevent unauthorized use of administrative settings/preferences
*/
public static final String ADMIN_AUTH_CODE = "12345";
/**
* property file keys
*/
public static final String SERVER_BASE = "serverBase";
public static final String API_KEY = "apiKey";
public static final String S3_BUCKET = "awsBucket";
public static final String S3_ACCESSKEY = "awsAccessKeyId";
public static final String S3_SECRET = "awsSecretKey";
public static final String SENTRY_DSN = "sentryDsn";
/**
* S3 bucket directories (object prefixes)
*/
public static final String S3_DATA_DIR = "devicezip/";
public static final String S3_IMAGE_DIR = "images/";
public static final String S3_SURVEYS_DIR = "surveys/";
/**
* resource related constants
*/
public static final String RESOURCE_PACKAGE = "org.akvo.flow";
public static final String RAW_RESOURCE = "raw";
/**
* SurveyedLocale meta question IDs. Negative IDs to avoid collisions.
* Irrelevant for the server side, they are used to identify a locale meta-data
* response among the rest of the 'real' question answers
*/
public static final String QUESTION_LOCALE_NAME = "-1";
public static final String QUESTION_LOCALE_GEO = "-2";
/**
* Order By
*/
public static final int ORDER_BY_NONE = -1;
public static final int ORDER_BY_DATE = 0;
public static final int ORDER_BY_DISTANCE = 1;
public static final int ORDER_BY_STATUS = 2;
public static final int ORDER_BY_NAME = 3;
/**
* Max picture size
* Values must match the ones set in arrays.
* TODO: Preferences should be managed with SharedPreferences api, to avoid this error prone references
*/
public static final int IMAGE_SIZE_320_240 = 0;
public static final int IMAGE_SIZE_640_480 = 1;
public static final int IMAGE_SIZE_1280_960 = 2;
public static final int NOTIFICATION_RECORD_SYNC = 100;
public static final int NOTIFICATION_FORMS_SYNCED = 102;
public static final int NOTIFICATION_ASSIGNMENT_ERROR = 103;
public static final int NOTIFICATION_HEADER_ERROR = 104;
public static final int NOTIFICATION_FORM_ERROR = 105;
public static final int NOTIFICATION_RESOURCE_ERROR = 105;
public static final int NOTIFICATION_BOOTSTRAP = 106;
/**
* Caddisfly serialization settings
*/
public static final String EXTERNAL_SOURCE_ACTION = "org.akvo.flow.action.externalsource";
public static final String CADDISFLY_ACTION = "org.akvo.flow.action.caddisfly";
public static final String CADDISFLY_RESOURCE_ID = "caddisflyResourceUuid";
public static final String CADDISFLY_QUESTION_ID = "questionId";
public static final String CADDISFLY_QUESTION_TITLE = "questionTitle";
public static final String CADDISFLY_FORM_ID = "formId";
public static final String CADDISFLY_DATAPOINT_ID = "datapointId";
public static final String CADDISFLY_LANGUAGE = "language";
public static final String CADDISFLY_RESPONSE = "response";
public static final String CADDISFLY_IMAGE = "image";
public static final String CADDISFLY_MIME = "text/plain";
//broadcasts
public static final String ACTION_LOCALE_SYNC = "fieldsurvey.ACTION_LOCALES_SYNC";
public static final String ACTION_DATA_SYNC = "fieldsurvey.ACTION_DATA_SYNC";
//apk update
public static final int REPEAT_INTERVAL_IN_SECONDS = 1 * 60 * 60 * 24; //every 24Hrs
public static final int FLEX_INTERVAL_IN_SECONDS = 1 * 60 * 60; //1 hour
//first runs will be faster
public static final int FIRST_REPEAT_INTERVAL_IN_SECONDS = 1 * 60;
public static final int FIRST_FLEX_INTERVAL_IN_SECOND = 30;
/**
* 7 days
*/
public static final int UPDATE_NOTIFICATION_DELAY_IN_MS = 7 * 60 * 60 * 24 * 1000;
//requests
public static final int REQUEST_ADD_USER = 0;
public static final int PHOTO_ACTIVITY_REQUEST = 1;
public static final int VIDEO_ACTIVITY_REQUEST = 2;
public static final int SCAN_ACTIVITY_REQUEST = 3;
public static final int EXTERNAL_SOURCE_REQUEST = 4;
public static final int CADDISFLY_REQUEST = 5;
public static final int PLOTTING_REQUEST = 6;
public static final int SIGNATURE_REQUEST = 7;
/**
* prevent instantiation
*/
private ConstantUtil() {
}
}