/**@class android.content.pm.ShortcutManager
@extends java.lang.Object

 <p><code>ShortcutManager</code> executes operations on an app's set of <i>shortcuts</i>, which
 represent specific tasks and actions that users can perform within your app. This page lists
 components of the <code>ShortcutManager</code> class that you can use to create and manage
 sets of shortcuts.

 <p>To learn about methods that retrieve information about a single shortcut&mdash;including
 identifiers, type, and status&mdash;read the <code>
 <a href="/reference/android/content/pm/ShortcutInfo.html">ShortcutInfo</a></code> reference.

 <p>For guidance about using shortcuts, see
 <a href="/guide/topics/ui/shortcuts/index.html">App shortcuts</a>.

 <h3>Retrieving class instances</h3>
 <!-- Provides a heading for the content filled in by the @SystemService annotation below -->
*/
var ShortcutManager = {

/**Publish the list of shortcuts.  All existing dynamic shortcuts from the caller app
 will be replaced.  If there are already pinned shortcuts with the same IDs,
 the mutable pinned shortcuts are updated.

 <p>This API will be rate-limited.
@return {Boolean} {@code true} if the call has succeeded. {@code false} if the call is rate-limited.
@throws IllegalArgumentException if {@link #getMaxShortcutCountPerActivity()} is exceeded,
 or when trying to update immutable shortcuts.
@throws IllegalStateException when the user is locked.
*/
setDynamicShortcuts : function(  ) {},

/**Return all dynamic shortcuts from the caller app.

 <p>This API is intended to be used for examining what shortcuts are currently published.
 Re-publishing returned {@link android.content.pm.ShortcutInfo}s via APIs such as
 {@link #setDynamicShortcuts}(List) may cause loss of information such as icons.
@throws IllegalStateException when the user is locked.
*/
getDynamicShortcuts : function(  ) {},

/**Return all static (manifest) shortcuts from the caller app.

 <p>This API is intended to be used for examining what shortcuts are currently published.
 Re-publishing returned {@link android.content.pm.ShortcutInfo}s via APIs such as
 {@link #setDynamicShortcuts}(List) may cause loss of information such as icons.
@throws IllegalStateException when the user is locked.
*/
getManifestShortcuts : function(  ) {},

/**Publish the list of dynamic shortcuts.  If there are already dynamic or pinned shortcuts with
 the same IDs, each mutable shortcut is updated.

 <p>This API will be rate-limited.
@return {Boolean} {@code true} if the call has succeeded. {@code false} if the call is rate-limited.
@throws IllegalArgumentException if {@link #getMaxShortcutCountPerActivity()} is exceeded,
 or when trying to update immutable shortcuts.
@throws IllegalStateException when the user is locked.
*/
addDynamicShortcuts : function(  ) {},

/**Delete dynamic shortcuts by ID.
@throws IllegalStateException when the user is locked.
*/
removeDynamicShortcuts : function(  ) {},

/**Delete all dynamic shortcuts from the caller app.
@throws IllegalStateException when the user is locked.
*/
removeAllDynamicShortcuts : function(  ) {},

/**Return all pinned shortcuts from the caller app.

 <p>This API is intended to be used for examining what shortcuts are currently published.
 Re-publishing returned {@link android.content.pm.ShortcutInfo}s via APIs such as
 {@link #setDynamicShortcuts}(List) may cause loss of information such as icons.
@throws IllegalStateException when the user is locked.
*/
getPinnedShortcuts : function(  ) {},

/**Update all existing shortcuts with the same IDs.  Target shortcuts may be pinned and/or
 dynamic, but they must not be immutable.

 <p>This API will be rate-limited.
@return {Boolean} {@code true} if the call has succeeded. {@code false} if the call is rate-limited.
@throws IllegalArgumentException If trying to update immutable shortcuts.
@throws IllegalStateException when the user is locked.
*/
updateShortcuts : function(  ) {},

/**Disable pinned shortcuts.  For more details, read
 <a href="/guide/topics/ui/shortcuts/managing-shortcuts.html#disable-shortcuts">
 Disable shortcuts</a>.
@throws IllegalArgumentException If trying to disable immutable shortcuts.
@throws IllegalStateException when the user is locked.
*/
disableShortcuts : function(  ) {},

/**
@hide old signature, kept for unit testing.
*/
disableShortcuts : function(  ) {},

/**
@hide old signature, kept for unit testing.
*/
disableShortcuts : function(  ) {},

/**Disable pinned shortcuts, showing the user a custom error message when they try to select
 the disabled shortcuts.
 For more details, read
 <a href="/guide/topics/ui/shortcuts/managing-shortcuts.html#disable-shortcuts">
 Disable shortcuts</a>.
@throws IllegalArgumentException If trying to disable immutable shortcuts.
@throws IllegalStateException when the user is locked.
*/
disableShortcuts : function(  ) {},

/**Re-enable pinned shortcuts that were previously disabled.  If the target shortcuts
 are already enabled, this method does nothing.
@throws IllegalArgumentException If trying to enable immutable shortcuts.
@throws IllegalStateException when the user is locked.
*/
enableShortcuts : function(  ) {},

/**
@hide old signature, kept for unit testing.
*/
getMaxShortcutCountForActivity : function(  ) {},

/**Return the maximum number of static and dynamic shortcuts that each launcher icon
 can have at a time.
*/
getMaxShortcutCountPerActivity : function(  ) {},

/**Return the number of times the caller app can call the rate-limited APIs
 before the rate limit counter is reset.
@see #getRateLimitResetTime()
@hide 
*/
getRemainingCallCount : function(  ) {},

/**Return when the rate limit count will be reset next time, in milliseconds since the epoch.
@see #getRemainingCallCount()
@see System#currentTimeMillis()
@hide 
*/
getRateLimitResetTime : function(  ) {},

/**Return {@code true} when rate-limiting is active for the caller app.

 <p>For details, see <a href="/guide/topics/ui/shortcuts/managing-shortcuts#rate-limiting">
 Rate limiting</a>.
@throws IllegalStateException when the user is locked.
*/
isRateLimitingActive : function(  ) {},

/**Return the max width for icons, in pixels.

 <p> Note that this method returns max width of icon's visible part. Hence, it does not take
 into account the inset introduced by {@link AdaptiveIconDrawable}. To calculate bitmap image
 to function as {@link AdaptiveIconDrawable}, multiply
 1 + 2 * {@link AdaptiveIconDrawable#getExtraInsetFraction()} to the returned size.
*/
getIconMaxWidth : function(  ) {},

/**Return the max height for icons, in pixels.
*/
getIconMaxHeight : function(  ) {},

/**Apps that publish shortcuts should call this method whenever the user
 selects the shortcut containing the given ID or when the user completes
 an action in the app that is equivalent to selecting the shortcut.
 For more details, read about
 <a href="/guide/topics/ui/shortcuts/managing-shortcuts.html#track-usage">
 tracking shortcut usage</a>.

 <p>The information is accessible via {@link UsageStatsManager#queryEvents}
 Typically, launcher apps use this information to build a prediction model
 so that they can promote the shortcuts that are likely to be used at the moment.
@throws IllegalStateException when the user is locked.
*/
reportShortcutUsed : function(  ) {},

/**Return {@code TRUE} if the app is running on a device whose default launcher supports
 {@link #requestPinShortcut(ShortcutInfo, IntentSender)}.

 <p>The return value may change in subsequent calls if the user changes the default launcher
 app.

 <p><b>Note:</b> See also the support library counterpart
 {@link android.support.v4.content.pm.ShortcutManagerCompat#isRequestPinShortcutSupported(
 Context)}, which supports Android versions lower than {@link VERSION_CODES#O} using the
 legacy private intent {@code com.android.launcher.action.INSTALL_SHORTCUT}.
@see #requestPinShortcut(ShortcutInfo, IntentSender)
*/
isRequestPinShortcutSupported : function(  ) {},

/**Request to create a pinned shortcut.  The default launcher will receive this request and
 ask the user for approval.  If the user approves it, the shortcut will be created, and
 {@code resultIntent} will be sent. If a request is denied by the user, however, no response
 will be sent to the caller.

 <p>Only apps with a foreground activity or a foreground service can call this method.
 Otherwise, it'll throw {@link IllegalStateException}.

 <p>It's up to the launcher to decide how to handle previous pending requests when the same
 package calls this API multiple times in a row. One possible strategy is to ignore any
 previous requests.

 <p><b>Note:</b> See also the support library counterpart
 {@link android.support.v4.content.pm.ShortcutManagerCompat#requestPinShortcut(
 Context, android.content.pm.ShortcutInfoCompat, IntentSender)},
 which supports Android versions lower than {@link VERSION_CODES#O} using the
 legacy private intent {@code com.android.launcher.action.INSTALL_SHORTCUT}.
@param {Object {ShortcutInfo}} shortcut Shortcut to pin.  If an app wants to pin an existing (either static
     or dynamic) shortcut, then it only needs to have an ID. Although other fields don't have
     to be set, the target shortcut must be enabled.

     <p>If it's a new shortcut, all the mandatory fields, such as a short label, must be
     set.
@param {Object {IntentSender}} resultIntent If not null, this intent will be sent when the shortcut is pinned.
    Use {@link android.app.PendingIntent#getIntentSender()} to create an {@link IntentSender}.
    To avoid background execution limits, use an unexported, manifest-declared receiver.
    For more details, see
    <a href="/guide/topics/ui/shortcuts/creating-shortcuts.html#pinned">
    Creating pinned shortcuts</a>.
@return {Boolean} {@code TRUE} if the launcher supports this feature.  Note the API will return without
    waiting for the user to respond, so getting {@code TRUE} from this API does *not* mean
    the shortcut was pinned successfully.  {@code FALSE} if the launcher doesn't support this
    feature.
@see #isRequestPinShortcutSupported()
@see IntentSender
@see android.app.PendingIntent#getIntentSender()
@throws IllegalArgumentException if a shortcut with the same ID exists and is disabled.
@throws IllegalStateException The caller doesn't have a foreground activity or a foreground
 service, or the device is locked.
*/
requestPinShortcut : function(  ) {},

/**Returns an Intent which can be used by the default launcher to pin a shortcut containing the
 given {@link android.content.pm.ShortcutInfo}. This method should be used by an Activity to set a result in
 response to {@link Intent#ACTION_CREATE_SHORTCUT}.
@param {Object {ShortcutInfo}} shortcut New shortcut to pin.  If an app wants to pin an existing (either dynamic
     or manifest) shortcut, then it only needs to have an ID, and other fields don't have to
     be set, in which case, the target shortcut must be enabled.
     If it's a new shortcut, all the mandatory fields, such as a short label, must be
     set.
@return {Object {android.content.Intent}} The intent that should be set as the result for the calling activity, or
     <code>null</code> if the current launcher doesn't support shortcuts.
@see Intent#ACTION_CREATE_SHORTCUT
@throws IllegalArgumentException if a shortcut with the same ID exists and is disabled.
*/
createShortcutResultIntent : function(  ) {},

/**Called internally when an app is considered to have come to the foreground
 even when technically it's not.  This method resets the throttling for this package.
 For example, when the user sends an "inline reply" on a notification, the system UI will
 call it.
@hide 
*/
onApplicationActive : function(  ) {},

/**Used by framework's ShareSheet (ChooserActivity.java) to retrieve all of the direct share
 targets that match the given IntentFilter.
@param {Object {IntentFilter}} filter IntentFilter that will be used to retrieve the matching {@link ShortcutInfo}s.
@return {Object {java.util.List}} List of {@link ShareShortcutInfo}s that match the given IntentFilter.
@hide 
*/
getShareTargets : function(  ) {},

/**Used by framework's ShareSheet (ChooserActivity.java) to check if a given package has share
 target definitions in it's resources.
@param {String} packageName Package to check for share targets.
@return {Boolean} True if the package has any share target definitions, False otherwise.
@hide 
*/
hasShareTargets : function(  ) {},


};