/**@class android.provider.CallLog.Calls
 implements android.provider.BaseColumns

@extends java.lang.Object

 Contains the recent calls.
*/
var Calls = {

/** The content:// style URL for this table
*/
CONTENT_URI : "null",
/**@hide */
SHADOW_CONTENT_URI : "null",
/** The content:// style URL for filtering this table on phone numbers
*/
CONTENT_FILTER_URI : "null",
/** Query parameter used to limit the number of call logs returned.
 <p>
 TYPE: integer
*/
LIMIT_PARAM_KEY : "limit",
/** Query parameter used to specify the starting record to return.
 <p>
 TYPE: integer
*/
OFFSET_PARAM_KEY : "offset",
/** An optional URI parameter which instructs the provider to allow the operation to be
 applied to voicemail records as well.
 <p>
 TYPE: Boolean
 <p>
 Using this parameter with a value of {@code true} will result in a security error if the
 calling package does not have appropriate permissions to access voicemails.

 @hide
*/
ALLOW_VOICEMAILS_PARAM_KEY : "allow_voicemails",
/** An optional extra used with {@link #CONTENT_TYPE android.provider.CallLog.Calls.CONTENT_TYPE} and
 {@link Intent#ACTION_VIEW} to specify that the presented list of calls should be
 filtered for a particular call type.

 Applications implementing a call log UI should check for this extra, and display a
 filtered list of calls based on the specified call type. If not applicable within the
 application's UI, it should be silently ignored.

 <p>
 The following example brings up the call log, showing only missed calls.
 <pre>
 Intent intent = new Intent(Intent.ACTION_VIEW);
 intent.setType(CallLog.Calls.CONTENT_TYPE);
 intent.putExtra(CallLog.Calls.EXTRA_CALL_TYPE_FILTER, CallLog.Calls.MISSED_TYPE);
 startActivity(intent);
 </pre>
 </p>
*/
EXTRA_CALL_TYPE_FILTER : "android.provider.extra.CALL_TYPE_FILTER",
/** Content uri used to access call log entries, including voicemail records. You must have
 the READ_CALL_LOG and WRITE_CALL_LOG permissions to read and write to the call log, as
 well as READ_VOICEMAIL and WRITE_VOICEMAIL permissions to read and write voicemails.
*/
CONTENT_URI_WITH_VOICEMAIL : "null",
/** The default sort order for this table
*/
DEFAULT_SORT_ORDER : "date DESC",
/** The MIME type of {@link #CONTENT_URI} and {@link #CONTENT_FILTER_URI}
 providing a directory of calls.
*/
CONTENT_TYPE : "vnd.android.cursor.dir/calls",
/** The MIME type of a {@link #CONTENT_URI} sub-directory of a single
 call.
*/
CONTENT_ITEM_TYPE : "vnd.android.cursor.item/calls",
/** The type of the call (incoming, outgoing or missed).
 <P>Type: INTEGER (int)</P>

 <p>
 Allowed values:
 <ul>
 <li>{@link #INCOMING_TYPE}</li>
 <li>{@link #OUTGOING_TYPE}</li>
 <li>{@link #MISSED_TYPE}</li>
 <li>{@link #VOICEMAIL_TYPE}</li>
 <li>{@link #REJECTED_TYPE}</li>
 <li>{@link #BLOCKED_TYPE}</li>
 <li>{@link #ANSWERED_EXTERNALLY_TYPE}</li>
 </ul>
 </p>
*/
TYPE : "type",
/**Call log type for incoming calls. */
INCOMING_TYPE : "1",
/**Call log type for outgoing calls. */
OUTGOING_TYPE : "2",
/**Call log type for missed calls. */
MISSED_TYPE : "3",
/**Call log type for voicemails. */
VOICEMAIL_TYPE : "4",
/**Call log type for calls rejected by direct user action. */
REJECTED_TYPE : "5",
/**Call log type for calls blocked automatically. */
BLOCKED_TYPE : "6",
/** Call log type for a call which was answered on another device.  Used in situations where
 a call rings on multiple devices simultaneously and it ended up being answered on a
 device other than the current one.
*/
ANSWERED_EXTERNALLY_TYPE : "7",
/** Bit-mask describing features of the call (e.g. video).

 <P>Type: INTEGER (int)</P>
*/
FEATURES : "features",
/**Call had video. */
FEATURES_VIDEO : "1",
/**Call was pulled externally. */
FEATURES_PULLED_EXTERNALLY : "2",
/**Call was HD. */
FEATURES_HD_CALL : "4",
/**Call was WIFI call. */
FEATURES_WIFI : "8",
/** Indicates the call underwent Assisted Dialing.
 @hide
*/
FEATURES_ASSISTED_DIALING_USED : "16",
/**Call was on RTT at some point */
FEATURES_RTT : "32",
/** The phone number as the user entered it.
 <P>Type: TEXT</P>
*/
NUMBER : "number",
/** The number presenting rules set by the network.

 <p>
 Allowed values:
 <ul>
 <li>{@link #PRESENTATION_ALLOWED}</li>
 <li>{@link #PRESENTATION_RESTRICTED}</li>
 <li>{@link #PRESENTATION_UNKNOWN}</li>
 <li>{@link #PRESENTATION_PAYPHONE}</li>
 </ul>
 </p>

 <P>Type: INTEGER</P>
*/
NUMBER_PRESENTATION : "presentation",
/**Number is allowed to display for caller id. */
PRESENTATION_ALLOWED : "1",
/**Number is blocked by user. */
PRESENTATION_RESTRICTED : "2",
/**Number is not specified or unknown by network. */
PRESENTATION_UNKNOWN : "3",
/**Number is a pay phone. */
PRESENTATION_PAYPHONE : "4",
/** The ISO 3166-1 two letters country code of the country where the
 user received or made the call.
 <P>
 Type: TEXT
 </P>
*/
COUNTRY_ISO : "countryiso",
/** The date the call occured, in milliseconds since the epoch
 <P>Type: INTEGER (long)</P>
*/
DATE : "date",
/** The duration of the call in seconds
 <P>Type: INTEGER (long)</P>
*/
DURATION : "duration",
/** The data usage of the call in bytes.
 <P>Type: INTEGER (long)</P>
*/
DATA_USAGE : "data_usage",
/** Whether or not the call has been acknowledged
 <P>Type: INTEGER (boolean)</P>
*/
NEW : "new",
/** The cached name associated with the phone number, if it exists.

 <p>This value is typically filled in by the dialer app for the caching purpose,
 so it's not guaranteed to be present, and may not be current if the contact
 information associated with this number has changed.
 <P>Type: TEXT</P>
*/
CACHED_NAME : "name",
/** The cached number type (Home, Work, etc) associated with the
 phone number, if it exists.

 <p>This value is typically filled in by the dialer app for the caching purpose,
 so it's not guaranteed to be present, and may not be current if the contact
 information associated with this number has changed.
 <P>Type: INTEGER</P>
*/
CACHED_NUMBER_TYPE : "numbertype",
/** The cached number label, for a custom number type, associated with the
 phone number, if it exists.

 <p>This value is typically filled in by the dialer app for the caching purpose,
 so it's not guaranteed to be present, and may not be current if the contact
 information associated with this number has changed.
 <P>Type: TEXT</P>
*/
CACHED_NUMBER_LABEL : "numberlabel",
/** URI of the voicemail entry. Populated only for {@link #VOICEMAIL_TYPE}.
 <P>Type: TEXT</P>
*/
VOICEMAIL_URI : "voicemail_uri",
/** Transcription of the call or voicemail entry. This will only be populated for call log
 entries of type {@link #VOICEMAIL_TYPE} that have valid transcriptions.
*/
TRANSCRIPTION : "transcription",
/** State of voicemail transcription entry. This will only be populated for call log
 entries of type {@link #VOICEMAIL_TYPE}.
 @hide
*/
TRANSCRIPTION_STATE : "transcription_state",
/** Whether this item has been read or otherwise consumed by the user.
 <p>
 Unlike the {@link #NEW} field, which requires the user to have acknowledged the
 existence of the entry, this implies the user has interacted with the entry.
 <P>Type: INTEGER (boolean)</P>
*/
IS_READ : "is_read",
/** A geocoded location for the number associated with this call.
 <p>
 The string represents a city, state, or country associated with the number.
 <P>Type: TEXT</P>
*/
GEOCODED_LOCATION : "geocoded_location",
/** The cached URI to look up the contact associated with the phone number, if it exists.

 <p>This value is typically filled in by the dialer app for the caching purpose,
 so it's not guaranteed to be present, and may not be current if the contact
 information associated with this number has changed.
 <P>Type: TEXT</P>
*/
CACHED_LOOKUP_URI : "lookup_uri",
/** The cached phone number of the contact which matches this entry, if it exists.

 <p>This value is typically filled in by the dialer app for the caching purpose,
 so it's not guaranteed to be present, and may not be current if the contact
 information associated with this number has changed.
 <P>Type: TEXT</P>
*/
CACHED_MATCHED_NUMBER : "matched_number",
/** The cached normalized(E164) version of the phone number, if it exists.

 <p>This value is typically filled in by the dialer app for the caching purpose,
 so it's not guaranteed to be present, and may not be current if the contact
 information associated with this number has changed.
 <P>Type: TEXT</P>
*/
CACHED_NORMALIZED_NUMBER : "normalized_number",
/** The cached photo id of the picture associated with the phone number, if it exists.

 <p>This value is typically filled in by the dialer app for the caching purpose,
 so it's not guaranteed to be present, and may not be current if the contact
 information associated with this number has changed.
 <P>Type: INTEGER (long)</P>
*/
CACHED_PHOTO_ID : "photo_id",
/** The cached photo URI of the picture associated with the phone number, if it exists.

 <p>This value is typically filled in by the dialer app for the caching purpose,
 so it's not guaranteed to be present, and may not be current if the contact
 information associated with this number has changed.
 <P>Type: TEXT (URI)</P>
*/
CACHED_PHOTO_URI : "photo_uri",
/** The cached phone number, formatted with formatting rules based on the country the
 user was in when the call was made or received.

 <p>This value is typically filled in by the dialer app for the caching purpose,
 so it's not guaranteed to be present, and may not be current if the contact
 information associated with this number has changed.
 <P>Type: TEXT</P>
*/
CACHED_FORMATTED_NUMBER : "formatted_number",
/** The component name of the account used to place or receive the call; in string form.
 <P>Type: TEXT</P>
*/
PHONE_ACCOUNT_COMPONENT_NAME : "subscription_component_name",
/** The identifier for the account used to place or receive the call.
 <P>Type: TEXT</P>
*/
PHONE_ACCOUNT_ID : "subscription_id",
/** The address associated with the account used to place or receive the call; in string
 form. For SIM-based calls, this is the user's own phone number.
 <P>Type: TEXT</P>

 @hide
*/
PHONE_ACCOUNT_ADDRESS : "phone_account_address",
/** Indicates that the entry will be hidden from all queries until the associated
 {@link android.telecom.PhoneAccount} is registered with the system.
 <P>Type: INTEGER</P>

 @hide
*/
PHONE_ACCOUNT_HIDDEN : "phone_account_hidden",
/** The subscription ID used to place this call.  This is no longer used and has been
 replaced with PHONE_ACCOUNT_COMPONENT_NAME/PHONE_ACCOUNT_ID.
 For ContactsProvider internal use only.
 <P>Type: INTEGER</P>

 @Deprecated
 @hide
*/
SUB_ID : "sub_id",
/** The post-dial portion of a dialed number, including any digits dialed after a
 {@link TelecomManager#DTMF_CHARACTER_PAUSE} or a {@link TelecomManager#DTMF_CHARACTER_WAIT} and these characters themselves.
 <P>Type: TEXT</P>
*/
POST_DIAL_DIGITS : "post_dial_digits",
/** For an incoming call, the secondary line number the call was received via.
 When a SIM card has multiple phone numbers associated with it, the via number indicates
 which of the numbers associated with the SIM was called.
*/
VIA_NUMBER : "via_number",
/** Indicates that the entry will be copied from primary user to other users.
 <P>Type: INTEGER</P>

 @hide
*/
ADD_FOR_ALL_USERS : "add_for_all_users",
/** The date the row is last inserted, updated, or marked as deleted, in milliseconds
 since the epoch. Read only.
 <P>Type: INTEGER (long)</P>
*/
LAST_MODIFIED : "last_modified",
/** Value for {@link android.provider.CallLog.Calls#BLOCK_REASON}, set as the default value when a call was
 not blocked by a CallScreeningService or any other system call blocking method.
*/
BLOCK_REASON_NOT_BLOCKED : "0",
/** Value for {@link android.provider.CallLog.Calls#BLOCK_REASON}, set when {@link android.provider.CallLog.Calls#TYPE} is
 {@link android.provider.CallLog.Calls#BLOCKED_TYPE} to indicate that a call was blocked by a
 CallScreeningService. The {@link android.provider.CallLog.Calls#CALL_SCREENING_COMPONENT_NAME} and
 {@link android.provider.CallLog.Calls#CALL_SCREENING_APP_NAME} columns will indicate which call screening
 service was responsible for blocking the call.
*/
BLOCK_REASON_CALL_SCREENING_SERVICE : "1",
/** Value for {@link android.provider.CallLog.Calls#BLOCK_REASON}, set when {@link android.provider.CallLog.Calls#TYPE} is
 {@link android.provider.CallLog.Calls#BLOCKED_TYPE} to indicate that a call was blocked because the user
 configured a contact to be sent directly to voicemail.
*/
BLOCK_REASON_DIRECT_TO_VOICEMAIL : "2",
/** Value for {@link android.provider.CallLog.Calls#BLOCK_REASON}, set when {@link android.provider.CallLog.Calls#TYPE} is
 {@link android.provider.CallLog.Calls#BLOCKED_TYPE} to indicate that a call was blocked because it is
 in the BlockedNumbers provider.
*/
BLOCK_REASON_BLOCKED_NUMBER : "3",
/** Value for {@link android.provider.CallLog.Calls#BLOCK_REASON}, set when {@link android.provider.CallLog.Calls#TYPE} is
 {@link android.provider.CallLog.Calls#BLOCKED_TYPE} to indicate that a call was blocked because the user
 has chosen to block all calls from unknown numbers.
*/
BLOCK_REASON_UNKNOWN_NUMBER : "4",
/** Value for {@link android.provider.CallLog.Calls#BLOCK_REASON}, set when {@link android.provider.CallLog.Calls#TYPE} is
 {@link android.provider.CallLog.Calls#BLOCKED_TYPE} to indicate that a call was blocked because the user
 has chosen to block all calls from restricted numbers.
*/
BLOCK_REASON_RESTRICTED_NUMBER : "5",
/** Value for {@link android.provider.CallLog.Calls#BLOCK_REASON}, set when {@link android.provider.CallLog.Calls#TYPE} is
 {@link android.provider.CallLog.Calls#BLOCKED_TYPE} to indicate that a call was blocked because the user
 has chosen to block all calls from pay phones.
*/
BLOCK_REASON_PAY_PHONE : "6",
/** Value for {@link android.provider.CallLog.Calls#BLOCK_REASON}, set when {@link android.provider.CallLog.Calls#TYPE} is
 {@link android.provider.CallLog.Calls#BLOCKED_TYPE} to indicate that a call was blocked because the user
 has chosen to block all calls from numbers not in their contacts.
*/
BLOCK_REASON_NOT_IN_CONTACTS : "7",
/** The ComponentName of the CallScreeningService which blocked this call. Will be
 populated when the {@link android.provider.CallLog.Calls#TYPE} is {@link android.provider.CallLog.Calls#BLOCKED_TYPE}.
 <P>Type: TEXT</P>
*/
CALL_SCREENING_COMPONENT_NAME : "call_screening_component_name",
/** The name of the app which blocked a call. Will be populated when the
 {@link android.provider.CallLog.Calls#TYPE} is {@link android.provider.CallLog.Calls#BLOCKED_TYPE}. Provided as a
 convenience so that the call log can still indicate which app blocked a call, even if
 that app is no longer installed.
 <P>Type: TEXT</P>
*/
CALL_SCREENING_APP_NAME : "call_screening_app_name",
/** Where the {@link android.provider.CallLog.Calls#TYPE} is {@link android.provider.CallLog.Calls#BLOCKED_TYPE},
 indicates the reason why a call is blocked.
 <P>Type: INTEGER</P>

 <p>
 Allowed values:
 <ul>
 <li>{@link android.provider.CallLog.Calls#BLOCK_REASON_NOT_BLOCKED}</li>
 <li>{@link android.provider.CallLog.Calls#BLOCK_REASON_CALL_SCREENING_SERVICE}</li>
 <li>{@link android.provider.CallLog.Calls#BLOCK_REASON_DIRECT_TO_VOICEMAIL}</li>
 <li>{@link android.provider.CallLog.Calls#BLOCK_REASON_BLOCKED_NUMBER}</li>
 <li>{@link android.provider.CallLog.Calls#BLOCK_REASON_UNKNOWN_NUMBER}</li>
 <li>{@link android.provider.CallLog.Calls#BLOCK_REASON_RESTRICTED_NUMBER}</li>
 <li>{@link android.provider.CallLog.Calls#BLOCK_REASON_PAY_PHONE}</li>
 <li>{@link android.provider.CallLog.Calls#BLOCK_REASON_NOT_IN_CONTACTS}</li>
 </ul>
 </p>
*/
BLOCK_REASON : "block_reason",
/**Adds a call to the call log.
@param {Object {CallerInfo}} ci the CallerInfo object to get the target contact from.  Can be null
 if the contact is unknown.
@param {Object {Context}} context the context used to get the ContentResolver
@param {String} number the phone number to be added to the calls db
@param {Number} presentation enum value from PhoneConstants.PRESENTATION_xxx, which
        is set by the network and denotes the number presenting rules for
        "allowed", "payphone", "restricted" or "unknown"
@param {Number} callType enumerated values for "incoming", "outgoing", or "missed"
@param {Number} features features of the call (e.g. Video).
@param {Object {PhoneAccountHandle}} accountHandle The accountHandle object identifying the provider of the call
@param {Number} start time stamp for the call in milliseconds
@param {Number} duration call duration in seconds
@param {Number} dataUsage data usage for the call in bytes, null if data usage was not tracked for
                  the call.
@result The URI of the call log entry belonging to the user that made or received this
        call.
 {@hide}
*/
addCall : function(  ) {},

/**Adds a call to the call log.
@param {Object {CallerInfo}} ci the CallerInfo object to get the target contact from.  Can be null
 if the contact is unknown.
@param {Object {Context}} context the context used to get the ContentResolver
@param {String} number the phone number to be added to the calls db
@param {String} viaNumber the secondary number that the incoming call received with. If the
       call was received with the SIM assigned number, then this field must be ''.
@param {String} presentation enum value from PhoneConstants.PRESENTATION_xxx, which
        is set by the network and denotes the number presenting rules for
        "allowed", "payphone", "restricted" or "unknown"
@param {Number} callType enumerated values for "incoming", "outgoing", or "missed"
@param {Number} features features of the call (e.g. Video).
@param {Number} accountHandle The accountHandle object identifying the provider of the call
@param {Object {PhoneAccountHandle}} start time stamp for the call in milliseconds
@param {Number} duration call duration in seconds
@param {Number} dataUsage data usage for the call in bytes, null if data usage was not tracked for
                  the call.
@param {Number} addForAllUsers If true, the call is added to the call log of all currently
        running users. The caller must have the MANAGE_USERS permission if this is true.
@param {Boolean} userToBeInsertedTo {@link UserHandle} of user that the call is going to be
                           inserted to. null if it is inserted to the current user. The
                           value is ignored if @{link addForAllUsers} is true.
@result The URI of the call log entry belonging to the user that made or received this
        call.
 {@hide}
*/
addCall : function(  ) {},

/**Adds a call to the call log.
@param {Object {CallerInfo}} ci the CallerInfo object to get the target contact from.  Can be null
 if the contact is unknown.
@param {Object {Context}} context the context used to get the ContentResolver
@param {String} number the phone number to be added to the calls db
@param {String} postDialDigits the post-dial digits that were dialed after the number,
        if it was outgoing. Otherwise it is ''.
@param {String} viaNumber the secondary number that the incoming call received with. If the
        call was received with the SIM assigned number, then this field must be ''.
@param {Number} presentation enum value from PhoneConstants.PRESENTATION_xxx, which
        is set by the network and denotes the number presenting rules for
        "allowed", "payphone", "restricted" or "unknown"
@param {Number} callType enumerated values for "incoming", "outgoing", or "missed"
@param {Number} features features of the call (e.g. Video).
@param {Object {PhoneAccountHandle}} accountHandle The accountHandle object identifying the provider of the call
@param {Number} start time stamp for the call in milliseconds
@param {Number} duration call duration in seconds
@param {Number} dataUsage data usage for the call in bytes, null if data usage was not tracked for
                  the call.
@param {Boolean} addForAllUsers If true, the call is added to the call log of all currently
        running users. The caller must have the MANAGE_USERS permission if this is true.
@param {Object {UserHandle}} userToBeInsertedTo {@link UserHandle} of user that the call is going to be
                           inserted to. null if it is inserted to the current user. The
                           value is ignored if @{link addForAllUsers} is true.
@param {Boolean} isRead Flag to show if the missed call log has been read by the user or not.
                Used for call log restore of missed calls.
@param {Number} callBlockReason The reason why the call is blocked.
@param {Object {CharSequence}} callScreeningAppName The call screening application name which block the call.
@param {String} callScreeningComponentName The call screening component name which block the call.
@result The URI of the call log entry belonging to the user that made or received this
        call.  This could be of the shadow provider.  Do not return it to non-system apps,
        as they don't have permissions.
 {@hide}
*/
addCall : function(  ) {},

/**
@hide 
*/
shouldHaveSharedCallLogEntries : function(  ) {},

/**Query the call log database for the last dialed number.
@param {Object {Context}} context Used to get the content resolver.
@return {String} The last phone number dialed (outgoing) or an empty
 string if none exist yet.
*/
getLastOutgoingCall : function(  ) {},


};