PLUGIN_SETTINGS top-level constant

const PLUGIN_SETTINGS = const {'common' : const [const {'name' : 'desiredAccuracy', 'group' : 'geolocation', 'dataType' : 'integer', 'inputType' : 'select', 'labels' : const ['NAVIGATION', 'HIGH', 'LOW', 'VERY_LOW', 'LOWEST'], 'values' : const [-2, -1, 10, 100, 1000], 'defaultValue' : 0}, const {'name' : 'distanceFilter', 'group' : 'geolocation', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [0, 10, 20, 50, 100, 500], 'defaultValue' : 20}, const {'name' : 'disableElasticity', 'group' : 'geolocation', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : false}, const {'name' : 'elasticityMultiplier', 'group' : 'geolocation', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [0, 1, 2, 3, 5, 10], 'defaultValue' : 1}, const {'name' : 'geofenceProximityRadius', 'group' : 'geolocation', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [1000, 1500, 2000, 5000, 10000, 100000], 'defaultValue' : 1000}, const {'name' : 'stopAfterElapsedMinutes', 'group' : 'geolocation', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [-1, 0, 1, 2, 5, 10, 15], 'defaultValue' : 0}, const {'name' : 'desiredOdometerAccuracy', 'group' : 'geolocation', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [10, 20, 50, 100, 500], 'defaultValue' : 100}, const {'name' : 'activityRecognitionInterval', 'group' : 'activity recognition', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [0, 1000, 5000, 10000, 30000], 'defaultValue' : 10000}, const {'name' : 'stopTimeout', 'group' : 'activity recognition', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [0, 1, 5, 10, 15], 'defaultValue' : 1}, const {'name' : 'url', 'group' : 'http', 'inputType' : 'text', 'dataType' : 'string', 'defaultValue' : 'http://your.server.com/endpoint'}, const {'name' : 'autoSync', 'group' : 'http', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : true}, const {'name' : 'autoSyncThreshold', 'group' : 'http', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [0, 5, 10, 25, 50, 100], 'defaultValue' : 0}, const {'name' : 'batchSync', 'group' : 'http', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : false}, const {'name' : 'maxBatchSize', 'group' : 'http', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [-1, 50, 100, 250, 500], 'defaultValue' : 250}, const {'name' : 'maxRecordsToPersist', 'group' : 'http', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [-1, 0, 1, 10, 100, 1000], 'defaultValue' : -1}, const {'name' : 'maxDaysToPersist', 'group' : 'http', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [-1, 1, 2, 3, 4, 5, 6, 7], 'defaultValue' : -1}, const {'name' : 'stopOnTerminate', 'group' : 'application', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : true}, const {'name' : 'startOnBoot', 'group' : 'application', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : false}, const {'name' : 'heartbeatInterval', 'group' : 'application', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [-1, 60, 2 * 60, 5 * 60, 15 * 60], 'defaultValue' : 60}, const {'name' : 'debug', 'group' : 'debug', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : true}, const {'name' : 'logLevel', 'group' : 'debug', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [0, 1, 2, 3, 4, 5], 'labels' : const ['OFF', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'VERBOSE'], 'defaultValue' : 'VERBOSE'}, const {'name' : 'logMaxDays', 'group' : 'debug', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [1, 2, 3, 4, 5, 6, 7], 'defaultValue' : 3}], 'ios' : const [const {'name' : 'stationaryRadius', 'group' : 'geolocation', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [0, 25, 50, 100, 500, 1000, 5000], 'defaultValue' : 25}, const {'name' : 'activityType', 'group' : 'geolocation', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [1, 2, 3, 4], 'labels' : const ['OTHER', 'AUTOMOTIVE_NAVIGATION', 'FITNESS', 'OTHER_NAVIGATION'], 'defaultValue' : 'OTHER'}, const {'name' : 'useSignificantChangesOnly', 'group' : 'geolocation', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : false}, const {'name' : 'preventSuspend', 'group' : 'application', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : false}, const {'name' : 'disableStopDetection', 'group' : 'activity recognition', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : false}, const {'name' : 'stopDetectionDelay', 'group' : 'activity recognition', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [0, 1, 5, 10, 15], 'defaultValue' : 0}], 'android' : const [const {'name' : 'locationUpdateInterval', 'group' : 'geolocation', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [0, 1000, 5000, 10000, 30000, 60000], 'defaultValue' : 5000}, const {'name' : 'fastestLocationUpdateInterval', 'group' : 'geolocation', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [0, 1000, 5000, 10000, 30000, 60000], 'defaultValue' : 1000}, const {'name' : 'deferTime', 'group' : 'geolocation', 'dataType' : 'integer', 'inputType' : 'select', 'values' : const [0, 10 * 1000, 30 * 1000, 60 * 1000, 5 * 60 * 1000], 'defaultValue' : 0}, const {'name' : 'enableHeadless', 'group' : 'application', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : true}, const {'name' : 'foregroundService', 'group' : 'application', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : false}, const {'name' : 'forceReloadOnMotionChange', 'group' : 'application', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : false}, const {'name' : 'forceReloadOnLocationChange', 'group' : 'application', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : false}, const {'name' : 'forceReloadOnGeofence', 'group' : 'application', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : false}, const {'name' : 'forceReloadOnHeartbeat', 'group' : 'application', 'dataType' : 'boolean', 'inputType' : 'toggle', 'values' : const [true, false], 'defaultValue' : false}, const {'name' : 'notificationPriority', 'group' : 'application', 'dataType' : 'string', 'inputType' : 'select', 'values' : const [0, 1, -1, 2, -2], 'labels' : const ['DEFAULT', 'HIGH', 'LOW', 'MAX', 'MIN'], 'defaultValue' : 'DEFAULT'}]}

Implementation

const PLUGIN_SETTINGS = {
  'common': [
    // Geolocation
    {'name': 'desiredAccuracy', 'group': 'geolocation', 'dataType': 'integer', 'inputType': 'select', 'labels': ['NAVIGATION', 'HIGH', 'LOW', 'VERY_LOW', 'LOWEST'], 'values': [-2, -1, 10, 100, 1000], 'defaultValue': 0 },
    {'name': 'distanceFilter', 'group': 'geolocation', 'dataType': 'integer', 'inputType': 'select', 'values': [0, 10, 20, 50, 100, 500], 'defaultValue': 20 },
    {'name': 'disableElasticity', 'group': 'geolocation', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': false},
    {'name': 'elasticityMultiplier', 'group': 'geolocation', 'dataType': 'integer', 'inputType': 'select', 'values': [0, 1, 2, 3, 5, 10], 'defaultValue': 1},
    {'name': 'geofenceProximityRadius', 'group': 'geolocation', 'dataType': 'integer', 'inputType': 'select', 'values': [1000, 1500, 2000, 5000, 10000, 100000], 'defaultValue': 1000 },
    {'name': 'stopAfterElapsedMinutes', 'group': 'geolocation', 'dataType': 'integer', 'inputType': 'select', 'values': [-1, 0, 1, 2, 5, 10, 15], 'defaultValue': 0},
    {'name': 'desiredOdometerAccuracy', 'group': 'geolocation', 'dataType': 'integer', 'inputType': 'select', 'values': [10, 20, 50, 100, 500], 'defaultValue': 100},
    // Activity Recognition
    {'name': 'activityRecognitionInterval', 'group': 'activity recognition', 'dataType': 'integer', 'inputType': 'select', 'values': [0, 1000, 5000, 10000, 30000], 'defaultValue': 10000},
    {'name': 'stopTimeout', 'group': 'activity recognition', 'dataType': 'integer', 'inputType': 'select', 'values': [0, 1, 5, 10, 15], 'defaultValue': 1},
    // HTTP & Persistence
    {'name': 'url', 'group': 'http', 'inputType': 'text', 'dataType': 'string', 'defaultValue': 'http://your.server.com/endpoint'},
    {'name': 'autoSync', 'group': 'http', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': true},
    {'name': 'autoSyncThreshold', 'group': 'http', 'dataType': 'integer', 'inputType': 'select', 'values': [0, 5, 10, 25, 50, 100], 'defaultValue': 0},
    {'name': 'batchSync', 'group': 'http', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': false},
    {'name': 'maxBatchSize', 'group': 'http', 'dataType': 'integer', 'inputType': 'select', 'values': [-1, 50, 100, 250, 500], 'defaultValue': 250},
    {'name': 'maxRecordsToPersist', 'group': 'http', 'dataType': 'integer', 'inputType': 'select', 'values': [-1, 0, 1, 10, 100, 1000], 'defaultValue': -1},
    {'name': 'maxDaysToPersist', 'group': 'http', 'dataType': 'integer', 'inputType': 'select', 'values': [-1, 1, 2, 3, 4, 5, 6, 7], 'defaultValue': -1},
    // Application
    {'name': 'stopOnTerminate', 'group': 'application', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': true},
    {'name': 'startOnBoot', 'group': 'application', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': false},
    {'name': 'heartbeatInterval', 'group': 'application', 'dataType': 'integer', 'inputType': 'select', 'values': [-1, 60, (2*60), (5*60), (15*60)], 'defaultValue': 60},
    // Logging & Debug
    {'name': 'debug', 'group': 'debug', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': true},
    {'name': 'logLevel', 'group': 'debug', 'dataType': 'integer', 'inputType': 'select', 'values': [0, 1, 2, 3, 4, 5], 'labels': ['OFF', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'VERBOSE'], 'defaultValue': 'VERBOSE'},
    {'name': 'logMaxDays', 'group': 'debug', 'dataType': 'integer', 'inputType': 'select', 'values': [1, 2, 3, 4, 5, 6, 7], 'defaultValue': 3}
  ],
  'ios': [
    // Geolocation
    {'name': 'stationaryRadius', 'group': 'geolocation', 'dataType': 'integer', 'inputType': 'select', 'values': [0, 25, 50, 100, 500, 1000, 5000], 'defaultValue': 25 },
    {'name': 'activityType', 'group': 'geolocation', 'dataType': 'integer', 'inputType': 'select', 'values': [1, 2, 3, 4], 'labels': ['OTHER', 'AUTOMOTIVE_NAVIGATION', 'FITNESS', 'OTHER_NAVIGATION'], 'defaultValue': 'OTHER'},
    {'name': 'useSignificantChangesOnly', 'group': 'geolocation', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': false},
    // Application
    {'name': 'preventSuspend', 'group': 'application', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': false},
    // Activity Recognition
    {'name': 'disableStopDetection', 'group': 'activity recognition', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': false},
    {'name': 'stopDetectionDelay', 'group': 'activity recognition', 'dataType': 'integer', 'inputType': 'select', 'values': [0, 1, 5, 10, 15], 'defaultValue': 0}
  ],
  'android': [
    // Geolocation
    {'name': 'locationUpdateInterval', 'group': 'geolocation', 'dataType': 'integer', 'inputType': 'select', 'values': [0, 1000, 5000, 10000, 30000, 60000], 'defaultValue': 5000},
    {'name': 'fastestLocationUpdateInterval', 'group': 'geolocation', 'dataType': 'integer', 'inputType': 'select', 'values': [0, 1000, 5000, 10000, 30000, 60000], 'defaultValue': 1000},
    {'name': 'deferTime', 'group': 'geolocation', 'dataType': 'integer', 'inputType': 'select', 'values': [0, (10*1000), (30*1000), (60*1000), (5*60*1000)], 'defaultValue': 0},
    // Activity Recognition
    // Application
    {'name': 'enableHeadless', 'group': 'application', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': true},
    {'name': 'foregroundService', 'group': 'application', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': false},
    {'name': 'forceReloadOnMotionChange', 'group': 'application', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': false},
    {'name': 'forceReloadOnLocationChange', 'group': 'application', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': false},
    {'name': 'forceReloadOnGeofence', 'group': 'application', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': false},
    {'name': 'forceReloadOnHeartbeat', 'group': 'application', 'dataType': 'boolean', 'inputType': 'toggle', 'values': [true, false], 'defaultValue': false},
    {'name': 'notificationPriority', 'group': 'application', 'dataType': 'string', 'inputType': 'select', 'values': [0, 1, -1, 2, -2], 'labels': ['DEFAULT', 'HIGH', 'LOW', 'MAX', 'MIN'], 'defaultValue': 'DEFAULT'}
  ]
}