/**@class android.net.wifi.WifiConfiguration.NetworkSelectionStatus
@extends java.lang.Object

 @hide
 This class is used to contain all the information and API used for quality network selection
*/
var NetworkSelectionStatus = {

/** This network is allowed to join Quality Network Selection
*/
NETWORK_SELECTION_ENABLED : "0",
/** network was temporary disabled. Can be re-enabled after a time period expire
*/
NETWORK_SELECTION_TEMPORARY_DISABLED : "1",
/** network was permanently disabled.
*/
NETWORK_SELECTION_PERMANENTLY_DISABLED : "2",
/** Maximum Network selection status
*/
NETWORK_SELECTION_STATUS_MAX : "3",
/** Quality network selection status String (for debug purpose). Use Quality network
 selection status value as index to extec the corresponding debug string
*/
QUALITY_NETWORK_SELECTION_STATUS : "null",
/** Default value. Means not disabled
*/
NETWORK_SELECTION_ENABLE : "0",
/** The starting index for network selection disabled reasons
*/
NETWORK_SELECTION_DISABLED_STARTING_INDEX : "1",
/** @deprecated it is not used any more.
 This network is disabled because higher layer (>2) network is bad
*/
DISABLED_BAD_LINK : "1",
/** This network is disabled because multiple association rejects
*/
DISABLED_ASSOCIATION_REJECTION : "2",
/** This network is disabled because multiple authentication failure
*/
DISABLED_AUTHENTICATION_FAILURE : "3",
/** This network is disabled because multiple DHCP failure
*/
DISABLED_DHCP_FAILURE : "4",
/** This network is disabled because of security network but no credentials
*/
DISABLED_DNS_FAILURE : "5",
/** This network is temporarily disabled because it has no Internet access.
*/
DISABLED_NO_INTERNET_TEMPORARY : "6",
/** This network is disabled because we started WPS
*/
DISABLED_WPS_START : "7",
/** This network is disabled because EAP-TLS failure
*/
DISABLED_TLS_VERSION_MISMATCH : "8",
/** This network is disabled due to absence of user credentials
*/
DISABLED_AUTHENTICATION_NO_CREDENTIALS : "9",
/** This network is permanently disabled because it has no Internet access and user does not
 want to stay connected.
*/
DISABLED_NO_INTERNET_PERMANENT : "10",
/** This network is disabled due to WifiManager disable it explicitly
*/
DISABLED_BY_WIFI_MANAGER : "11",
/** This network is disabled due to user switching
*/
DISABLED_DUE_TO_USER_SWITCH : "12",
/** This network is disabled due to wrong password
*/
DISABLED_BY_WRONG_PASSWORD : "13",
/** This network is disabled because service is not subscribed
*/
DISABLED_AUTHENTICATION_NO_SUBSCRIPTION : "14",
/** This Maximum disable reason value
*/
NETWORK_SELECTION_DISABLED_MAX : "15",
/** Quality network selection disable reason String (for debug purpose)
*/
QUALITY_NETWORK_SELECTION_DISABLE_REASON : "null",
/** Invalid time stamp for network selection disable
*/
INVALID_NETWORK_SELECTION_DISABLE_TIMESTAMP : "-1",
/**Set whether {@link com.android.server.wifi.RecommendedNetworkEvaluator} does not
 recommend connecting to this network.
*/
setNotRecommended : function(  ) {},

/**Returns whether {@link com.android.server.wifi.RecommendedNetworkEvaluator} does not
 recommend connecting to this network.
*/
isNotRecommended : function(  ) {},

/**set whether this network is visible in latest Qualified Network Selection
@param {Boolean} seen value set to candidate
*/
setSeenInLastQualifiedNetworkSelection : function(  ) {},

/**get whether this network is visible in latest Qualified Network Selection
@return {Boolean} returns true -- network is visible in latest Qualified Network Selection
         false -- network is invisible in latest Qualified Network Selection
*/
getSeenInLastQualifiedNetworkSelection : function(  ) {},

/**set the temporary candidate of current network selection procedure
@param {Object {ScanResult}} scanCandidate {@link ScanResult} the candidate set to mCandidate
*/
setCandidate : function(  ) {},

/**get the temporary candidate of current network selection procedure
@return {Object {android.net.wifi.ScanResult}} returns {@link ScanResult} temporary candidate of current network selection
 procedure
*/
getCandidate : function(  ) {},

/**set the score of the temporary candidate of current network selection procedure
@param {Number} score value set to mCandidateScore
*/
setCandidateScore : function(  ) {},

/**get the score of the temporary candidate of current network selection procedure
@return {Number} returns score of the temporary candidate of current network selection procedure
*/
getCandidateScore : function(  ) {},

/**get user preferred choice over this configuration
@return {String} returns configKey of user preferred choice over this configuration
*/
getConnectChoice : function(  ) {},

/**set user preferred choice over this configuration
@param {String} newConnectChoice, the configKey of user preferred choice over this configuration
*/
setConnectChoice : function(  ) {},

/**get the timeStamp when user select a choice over this configuration
@return {Number} returns when current connectChoice is set (time from System.currentTimeMillis)
*/
getConnectChoiceTimestamp : function(  ) {},

/**set the timeStamp when user select a choice over this configuration
@param {Number} timeStamp, the timestamp set to connectChoiceTimestamp, expected timestamp should
        be obtained from System.currentTimeMillis
*/
setConnectChoiceTimestamp : function(  ) {},

/**get current Quality network selection status
@return {String} returns current Quality network selection status in String (for debug purpose)
*/
getNetworkStatusString : function(  ) {},

/**
*/
setHasEverConnected : function(  ) {},

/**
*/
getHasEverConnected : function(  ) {},

/**
@param {Number} reason specific error reason
@return {String} corresponding network disable reason String (for debug purpose)
*/
getNetworkDisableReasonString : function(  ) {},

/**get current network disable reason
@return {String} current network disable reason in String (for debug purpose)
*/
getNetworkDisableReasonString : function(  ) {},

/**get current network network selection status
@return {Number} return current network network selection status
*/
getNetworkSelectionStatus : function(  ) {},

/**
@return {Boolean} whether current network is enabled to join network selection
*/
isNetworkEnabled : function(  ) {},

/**
@return {Boolean} whether current network is temporary disabled
*/
isNetworkTemporaryDisabled : function(  ) {},

/**
@return {Boolean} returns whether current network is permanently disabled
*/
isNetworkPermanentlyDisabled : function(  ) {},

/**set current networ work selection status
@param {Number} status network selection status to set
*/
setNetworkSelectionStatus : function(  ) {},

/**
@return {Number} returns current network's disable reason
*/
getNetworkSelectionDisableReason : function(  ) {},

/**set Network disable reason
@param {Number} reason Network disable reason
*/
setNetworkSelectionDisableReason : function(  ) {},

/**check whether network is disabled by this reason
@param {Number} reason a specific disable reason
@return {Boolean} true -- network is disabled for this reason
         false -- network is not disabled for this reason
*/
isDisabledByReason : function(  ) {},

/**
@param {Number} timeStamp Set when current network is disabled in millisecond since January 1,
 1970 00:00:00.0 UTC
*/
setDisableTime : function(  ) {},

/**
@return {Number} returns when current network is disabled in millisecond since January 1,
 1970 00:00:00.0 UTC
*/
getDisableTime : function(  ) {},

/**get the disable counter of a specific reason
@param {Number} reason specific failure reason
@exception throw IllegalArgumentException for illegal input
@return {Number} counter number for specific error reason.
*/
getDisableReasonCounter : function(  ) {},

/**set the counter of a specific failure reason
@param {Number} reason reason for disable error
@param {Number} value the counter value for this specific reason
@exception throw IllegalArgumentException for illegal input
*/
setDisableReasonCounter : function(  ) {},

/**increment the counter of a specific failure reason
@param {Number} reason a specific failure reason
@exception throw IllegalArgumentException for illegal input
*/
incrementDisableReasonCounter : function(  ) {},

/**clear the counter of a specific failure reason
@param {Number} reason a specific failure reason
@param reason a specific failure reason
@exception throw IllegalArgumentException for illegal input
*/
clearDisableReasonCounter : function(  ) {},

/**clear all the failure reason counters
*/
clearDisableReasonCounter : function(  ) {},

/**get current network Selection BSSID
@return {String} current network Selection BSSID
*/
getNetworkSelectionBSSID : function(  ) {},

/**set network Selection BSSID
@param {String} bssid The target BSSID for assocaition
*/
setNetworkSelectionBSSID : function(  ) {},

/**
*/
copy : function(  ) {},

/**
*/
writeToParcel : function(  ) {},

/**
*/
readFromParcel : function(  ) {},


};