cordova.define("cordova-plugin-android-permissions.Permissions", function(require, exports, module) {
var permissionsName = 'Permissions';

function Permissions() {

    this.ACCESS_CHECKIN_PROPERTIES = 'android.permission.ACCESS_CHECKIN_PROPERTIES';
    this.ACCESS_COARSE_LOCATION = 'android.permission.ACCESS_COARSE_LOCATION';
    this.ACCESS_FINE_LOCATION = 'android.permission.ACCESS_FINE_LOCATION';
    this.ACCESS_LOCATION_EXTRA_COMMANDS = 'android.permission.ACCESS_LOCATION_EXTRA_COMMANDS';
    this.ACCESS_MOCK_LOCATION = 'android.permission.ACCESS_MOCK_LOCATION';
    this.ACCESS_NETWORK_STATE = 'android.permission.ACCESS_NETWORK_STATE';
    this.ACCESS_SURFACE_FLINGER = 'android.permission.ACCESS_SURFACE_FLINGER';
    this.ACCESS_WIFI_STATE = 'android.permission.ACCESS_WIFI_STATE';
    this.ACCOUNT_MANAGER = 'android.permission.ACCOUNT_MANAGER';
    this.ADD_VOICEMAIL = 'com.android.voicemail.permission.ADD_VOICEMAIL';
    this.AUTHENTICATE_ACCOUNTS = 'android.permission.AUTHENTICATE_ACCOUNTS';
    this.BATTERY_STATS = 'android.permission.BATTERY_STATS';
    this.BIND_ACCESSIBILITY_SERVICE = 'android.permission.BIND_ACCESSIBILITY_SERVICE';
    this.BIND_APPWIDGET = 'android.permission.BIND_APPWIDGET';
    this.BIND_CARRIER_MESSAGING_SERVICE = 'android.permission.BIND_CARRIER_MESSAGING_SERVICE';
    this.BIND_DEVICE_ADMIN = 'android.permission.BIND_DEVICE_ADMIN';
    this.BIND_DREAM_SERVICE = 'android.permission.BIND_DREAM_SERVICE';
    this.BIND_INPUT_METHOD = 'android.permission.BIND_INPUT_METHOD';
    this.BIND_NFC_SERVICE = 'android.permission.BIND_NFC_SERVICE';
    this.BIND_NOTIFICATION_LISTENER_SERVICE = 'android.permission.BIND_NOTIFICATION_LISTENER_SERVICE';
    this.BIND_PRINT_SERVICE = 'android.permission.BIND_PRINT_SERVICE';
    this.BIND_REMOTEVIEWS = 'android.permission.BIND_REMOTEVIEWS';
    this.BIND_TEXT_SERVICE = 'android.permission.BIND_TEXT_SERVICE';
    this.BIND_TV_INPUT = 'android.permission.BIND_TV_INPUT';
    this.BIND_VOICE_INTERACTION = 'android.permission.BIND_VOICE_INTERACTION';
    this.BIND_VPN_SERVICE = 'android.permission.BIND_VPN_SERVICE';
    this.BIND_WALLPAPER = 'android.permission.BIND_WALLPAPER';
    this.BLUETOOTH = 'android.permission.BLUETOOTH';
    this.BLUETOOTH_ADMIN = 'android.permission.BLUETOOTH_ADMIN';
    this.BLUETOOTH_PRIVILEGED = 'android.permission.BLUETOOTH_PRIVILEGED';
    this.BODY_SENSORS = 'android.permission.BODY_SENSORS';
    this.BRICK = 'android.permission.BRICK';
    this.BROADCAST_PACKAGE_REMOVED = 'android.permission.BROADCAST_PACKAGE_REMOVED';
    this.BROADCAST_SMS = 'android.permission.BROADCAST_SMS';
    this.BROADCAST_STICKY = 'android.permission.BROADCAST_STICKY';
    this.BROADCAST_WAP_PUSH = 'android.permission.BROADCAST_WAP_PUSH';
    this.CALL_PHONE = 'android.permission.CALL_PHONE';
    this.CALL_PRIVILEGED = 'android.permission.CALL_PRIVILEGED';
    this.CAMERA = 'android.permission.CAMERA';
    this.CAPTURE_AUDIO_OUTPUT = 'android.permission.CAPTURE_AUDIO_OUTPUT';
    this.CAPTURE_SECURE_VIDEO_OUTPUT = 'android.permission.CAPTURE_SECURE_VIDEO_OUTPUT';
    this.CAPTURE_VIDEO_OUTPUT = 'android.permission.CAPTURE_VIDEO_OUTPUT';
    this.CHANGE_COMPONENT_ENABLED_STATE = 'android.permission.CHANGE_COMPONENT_ENABLED_STATE';
    this.CHANGE_CONFIGURATION = 'android.permission.CHANGE_CONFIGURATION';
    this.CHANGE_NETWORK_STATE = 'android.permission.CHANGE_NETWORK_STATE';
    this.CHANGE_WIFI_MULTICAST_STATE = 'android.permission.CHANGE_WIFI_MULTICAST_STATE';
    this.CHANGE_WIFI_STATE = 'android.permission.CHANGE_WIFI_STATE';
    this.CLEAR_APP_CACHE = 'android.permission.CLEAR_APP_CACHE';
    this.CLEAR_APP_USER_DATA = 'android.permission.CLEAR_APP_USER_DATA';
    this.CONTROL_LOCATION_UPDATES = 'android.permission.CONTROL_LOCATION_UPDATES';
    this.DELETE_CACHE_FILES = 'android.permission.DELETE_CACHE_FILES';
    this.DELETE_PACKAGES = 'android.permission.DELETE_PACKAGES';
    this.DEVICE_POWER = 'android.permission.DEVICE_POWER';
    this.DIAGNOSTIC = 'android.permission.DIAGNOSTIC';
    this.DISABLE_KEYGUARD = 'android.permission.DISABLE_KEYGUARD';
    this.DUMP = 'android.permission.DUMP';
    this.EXPAND_STATUS_BAR = 'android.permission.EXPAND_STATUS_BAR';
    this.FACTORY_TEST = 'android.permission.FACTORY_TEST';
    this.FLASHLIGHT = 'android.permission.FLASHLIGHT';
    this.FORCE_BACK = 'android.permission.FORCE_BACK';
    this.GET_ACCOUNTS = 'android.permission.GET_ACCOUNTS';
    this.GET_PACKAGE_SIZE = 'android.permission.GET_PACKAGE_SIZE';
    this.GET_TASKS = 'android.permission.GET_TASKS';
    this.GET_TOP_ACTIVITY_INFO = 'android.permission.GET_TOP_ACTIVITY_INFO';
    this.GLOBAL_SEARCH = 'android.permission.GLOBAL_SEARCH';
    this.HARDWARE_TEST = 'android.permission.HARDWARE_TEST';
    this.INJECT_EVENTS = 'android.permission.INJECT_EVENTS';
    this.INSTALL_LOCATION_PROVIDER = 'android.permission.INSTALL_LOCATION_PROVIDER';
    this.INSTALL_PACKAGES = 'android.permission.INSTALL_PACKAGES';
    this.INSTALL_SHORTCUT = 'com.android.launcher.permission.INSTALL_SHORTCUT';
    this.INTERNAL_SYSTEM_WINDOW = 'android.permission.INTERNAL_SYSTEM_WINDOW';
    this.INTERNET = 'android.permission.INTERNET';
    this.KILL_BACKGROUND_PROCESSES = 'android.permission.KILL_BACKGROUND_PROCESSES';
    this.LOCATION_HARDWARE = 'android.permission.LOCATION_HARDWARE';
    this.MANAGE_ACCOUNTS = 'android.permission.MANAGE_ACCOUNTS';
    this.MANAGE_APP_TOKENS = 'android.permission.MANAGE_APP_TOKENS';
    this.MANAGE_DOCUMENTS = 'android.permission.MANAGE_DOCUMENTS';
    this.MASTER_CLEAR = 'android.permission.MASTER_CLEAR';
    this.MEDIA_CONTENT_CONTROL = 'android.permission.MEDIA_CONTENT_CONTROL';
    this.MODIFY_AUDIO_SETTINGS = 'android.permission.MODIFY_AUDIO_SETTINGS';
    this.MODIFY_PHONE_STATE = 'android.permission.MODIFY_PHONE_STATE';
    this.MOUNT_FORMAT_FILESYSTEMS = 'android.permission.MOUNT_FORMAT_FILESYSTEMS';
    this.MOUNT_UNMOUNT_FILESYSTEMS = 'android.permission.MOUNT_UNMOUNT_FILESYSTEMS';
    this.NFC = 'android.permission.NFC';
    this.PERSISTENT_ACTIVITY = 'android.permission.PERSISTENT_ACTIVITY';
    this.PROCESS_OUTGOING_CALLS = 'android.permission.PROCESS_OUTGOING_CALLS';
    this.READ_CALENDAR = 'android.permission.READ_CALENDAR';
    this.READ_CALL_LOG = 'android.permission.READ_CALL_LOG';
    this.READ_CONTACTS = 'android.permission.READ_CONTACTS';
    this.READ_EXTERNAL_STORAGE = 'android.permission.READ_EXTERNAL_STORAGE';
    this.READ_FRAME_BUFFER = 'android.permission.READ_FRAME_BUFFER';
    this.READ_HISTORY_BOOKMARKS = 'com.android.browser.permission.READ_HISTORY_BOOKMARKS';
    this.READ_INPUT_STATE = 'android.permission.READ_INPUT_STATE';
    this.READ_LOGS = 'android.permission.READ_LOGS';
    this.READ_PHONE_STATE = 'android.permission.READ_PHONE_STATE';
    this.READ_PROFILE = 'android.permission.READ_PROFILE';
    this.READ_SMS = 'android.permission.READ_SMS';
    this.READ_SOCIAL_STREAM = 'android.permission.READ_SOCIAL_STREAM';
    this.READ_SYNC_SETTINGS = 'android.permission.READ_SYNC_SETTINGS';
    this.READ_SYNC_STATS = 'android.permission.READ_SYNC_STATS';
    this.READ_USER_DICTIONARY = 'android.permission.READ_USER_DICTIONARY';
    this.READ_VOICEMAIL = 'com.android.voicemail.permission.READ_VOICEMAIL';
    this.REBOOT = 'android.permission.REBOOT';
    this.RECEIVE_BOOT_COMPLETED = 'android.permission.RECEIVE_BOOT_COMPLETED';
    this.RECEIVE_MMS = 'android.permission.RECEIVE_MMS';
    this.RECEIVE_SMS = 'android.permission.RECEIVE_SMS';
    this.RECEIVE_WAP_PUSH = 'android.permission.RECEIVE_WAP_PUSH';
    this.RECORD_AUDIO = 'android.permission.RECORD_AUDIO';
    this.REORDER_TASKS = 'android.permission.REORDER_TASKS';
    this.RESTART_PACKAGES = 'android.permission.RESTART_PACKAGES';
    this.SEND_RESPOND_VIA_MESSAGE = 'android.permission.SEND_RESPOND_VIA_MESSAGE';
    this.SEND_SMS = 'android.permission.SEND_SMS';
    this.SET_ACTIVITY_WATCHER = 'android.permission.SET_ACTIVITY_WATCHER';
    this.SET_ALARM = 'com.android.alarm.permission.SET_ALARM';
    this.SET_ALWAYS_FINISH = 'android.permission.SET_ALWAYS_FINISH';
    this.SET_ANIMATION_SCALE = 'android.permission.SET_ANIMATION_SCALE';
    this.SET_DEBUG_APP = 'android.permission.SET_DEBUG_APP';
    this.SET_ORIENTATION = 'android.permission.SET_ORIENTATION';
    this.SET_POINTER_SPEED = 'android.permission.SET_POINTER_SPEED';
    this.SET_PREFERRED_APPLICATIONS = 'android.permission.SET_PREFERRED_APPLICATIONS';
    this.SET_PROCESS_LIMIT = 'android.permission.SET_PROCESS_LIMIT';
    this.SET_TIME = 'android.permission.SET_TIME';
    this.SET_TIME_ZONE = 'android.permission.SET_TIME_ZONE';
    this.SET_WALLPAPER = 'android.permission.SET_WALLPAPER';
    this.SET_WALLPAPER_HINTS = 'android.permission.SET_WALLPAPER_HINTS';
    this.SIGNAL_PERSISTENT_PROCESSES = 'android.permission.SIGNAL_PERSISTENT_PROCESSES';
    this.STATUS_BAR = 'android.permission.STATUS_BAR';
    this.SUBSCRIBED_FEEDS_READ = 'android.permission.SUBSCRIBED_FEEDS_READ';
    this.SUBSCRIBED_FEEDS_WRITE = 'android.permission.SUBSCRIBED_FEEDS_WRITE';
    this.SYSTEM_ALERT_WINDOW = 'android.permission.SYSTEM_ALERT_WINDOW';
    this.TRANSMIT_IR = 'android.permission.TRANSMIT_IR';
    this.UNINSTALL_SHORTCUT = 'com.android.launcher.permission.UNINSTALL_SHORTCUT';
    this.UPDATE_DEVICE_STATS = 'android.permission.UPDATE_DEVICE_STATS';
    this.USE_CREDENTIALS = 'android.permission.USE_CREDENTIALS';
    this.USE_SIP = 'android.permission.USE_SIP';
    this.VIBRATE = 'android.permission.VIBRATE';
    this.WAKE_LOCK = 'android.permission.WAKE_LOCK';
    this.WRITE_APN_SETTINGS = 'android.permission.WRITE_APN_SETTINGS';
    this.WRITE_CALENDAR = 'android.permission.WRITE_CALENDAR';
    this.WRITE_CALL_LOG = 'android.permission.WRITE_CALL_LOG';
    this.WRITE_CONTACTS = 'android.permission.WRITE_CONTACTS';
    this.WRITE_EXTERNAL_STORAGE = 'android.permission.WRITE_EXTERNAL_STORAGE';
    this.WRITE_GSERVICES = 'android.permission.WRITE_GSERVICES';
    this.WRITE_HISTORY_BOOKMARKS = 'com.android.browser.permission.WRITE_HISTORY_BOOKMARKS';
    this.WRITE_PROFILE = 'android.permission.WRITE_PROFILE';
    this.WRITE_SECURE_SETTINGS = 'android.permission.WRITE_SECURE_SETTINGS';
    this.WRITE_SETTINGS = 'android.permission.WRITE_SETTINGS';
    this.WRITE_SMS = 'android.permission.WRITE_SMS';
    this.WRITE_SOCIAL_STREAM = 'android.permission.WRITE_SOCIAL_STREAM';
    this.WRITE_SYNC_SETTINGS = 'android.permission.WRITE_SYNC_SETTINGS';
    this.WRITE_USER_DICTIONARY = 'android.permission.WRITE_USER_DICTIONARY';
    this.WRITE_VOICEMAIL = 'com.android.voicemail.permission.WRITE_VOICEMAIL';
}

function deprecated(name) {
  console.warn("Calling cordova.plugins.permissions." + name + " with the successCallback as first argument is deprecated");
  console.warn("The new signature is '" + name + "(permission, successCallback, errorCallback)'");
}

Permissions.prototype = {
    checkPermission: function(permission, successCallback, errorCallback) {
        cordova.exec(successCallback, errorCallback, permissionsName, 'checkPermission', [permission]);
    },
    requestPermission: function(permission, successCallback, errorCallback) {
        if (typeof permission === "function") {
            deprecated("requestPermission");
            successCallback = arguments[0];
            errorCallback = arguments[1];
            permission = arguments[2];
        }
        cordova.exec(successCallback, errorCallback, permissionsName, 'requestPermission', [permission]);
    },
    requestPermissions: function(permissions, successCallback, errorCallback) {
        cordova.exec(successCallback, errorCallback, permissionsName, 'requestPermissions', permissions);
    }
};

Permissions.prototype.hasPermission = function (permission, successCallback, errorCallback) {
    console.warn("hasPermission() function deprecated. Considers using checkPermission()");

    if (typeof permission === "function") {
        deprecated("hasPermission");
        successCallback = arguments[0];
        errorCallback = arguments[1];
        permission = arguments[2];
    }
    this.checkPermission.call(this, permission, successCallback, errorCallback);
};

module.exports = new Permissions();

});
