blob: 771a89ff83a77b5d71f28cdd1b2d82d09932503c [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/// Special flags that can be set on an intent to control how it is handled.
///
/// See
/// https://developer.android.com/reference/android/content/Intent.html#setFlags(int)
/// for the official documentation on Intent flags. The constants here mirror
/// the existing [android.content.Intent] ones.
class Flag {
/// Specifies how an activity should be launched. Generally set by the system
/// in conjunction with SINGLE_TASK.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_BROUGHT_TO_FRONT.
static const int FLAG_ACTIVITY_BROUGHT_TO_FRONT = 4194304;
/// Causes any existing tasks associated with the activity to be cleared.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TASK
static const int FLAG_ACTIVITY_CLEAR_TASK = 32768;
/// Closes any activities on top of this activity and brings it to the front,
/// if it's currently running.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP
static const int FLAG_ACTIVITY_CLEAR_TOP = 67108864;
/// @deprecated Use [FLAG_ACTIVITY_NEW_DOCUMENT] instead when on API 21 or above.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
@deprecated
static const int FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET = 524288;
/// Keeps the activity from being listed with other recently launched
/// activities.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
static const int FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS = 8388608;
/// Forwards the result from this activity to the existing one.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_FORWARD_RESULT
static const int FLAG_ACTIVITY_FORWARD_RESULT = 33554432;
/// Generally set by the system if the activity is being launched from
/// history.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY
static const int FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY = 1048576;
/// Used in split-screen mode to set the launched activity adjacent to the
/// launcher.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_LAUNCH_ADJACENT
static const int FLAG_ACTIVITY_LAUNCH_ADJACENT = 4096;
/// Used in split-screen mode to set the launched activity adjacent to the
/// launcher.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_MATCH_EXTERNAL
static const int FLAG_ACTIVITY_MATCH_EXTERNAL = 2048;
/// Creates and launches the activity into a new task. Should always be
/// combined with [FLAG_ACTIVITY_NEW_DOCUMENT] or [FLAG_ACTIVITY_NEW_TASK].
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_MULTIPLE_TASK.
static const int FLAG_ACTIVITY_MULTIPLE_TASK = 134217728;
/// Opens a document into a new task rooted in this activity.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_DOCUMENT.
static const int FLAG_ACTIVITY_NEW_DOCUMENT = 524288;
/// The launched activity starts a new task on the activity stack.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK.
static const int FLAG_ACTIVITY_NEW_TASK = 268435456;
/// Prevents the system from playing an activity transition animation when
/// launching this.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NO_ANIMATION.
static const int FLAG_ACTIVITY_NO_ANIMATION = 65536;
/// Does not keep the launched activity in history.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NO_HISTORY.
static const int FLAG_ACTIVITY_NO_HISTORY = 1073741824;
/// Prevents a typical callback from occuring when the activity is paused.
///
/// https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NO_USER_ACTION
static const int FLAG_ACTIVITY_NO_USER_ACTION = 262144;
/// Uses the previous activity as top when applicable.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_PREVIOUS_IS_TOP.
static const int FLAG_ACTIVITY_PREVIOUS_IS_TOP = 16777216;
/// Brings any already instances of this activity to the front.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT.
static const int FLAG_ACTIVITY_REORDER_TO_FRONT = 131072;
/// Launches the activity in a way that resets the task in some cases.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_RESET_TASK_IF_NEEDED.
static const int FLAG_ACTIVITY_RESET_TASK_IF_NEEDED = 2097152;
/// Keeps an entry in recent tasks. Used with [FLAG_ACTIVITY_NEW_DOCUMENT].
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_RETAIN_IN_RECENTS.
static const int FLAG_ACTIVITY_RETAIN_IN_RECENTS = 8192;
/// Will not re-launch the activity if it is already at the top of the history
/// stack.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_SINGLE_TOP.
static const int FLAG_ACTIVITY_SINGLE_TOP = 536870912;
/// Places the activity on top of the home task. Must be used with
/// [FLAG_ACTIVITY_NEW_TASK].
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_TASK_ON_HOME.
static const int FLAG_ACTIVITY_TASK_ON_HOME = 16384;
/// Prints debug logs while the intent is resolving.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_DEBUG_LOG_RESOLUTION.
static const int FLAG_DEBUG_LOG_RESOLUTION = 8;
/// Does not match to any stopped components.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_EXCLUDE_STOPPED_PACKAGES.
static const int FLAG_EXCLUDE_STOPPED_PACKAGES = 16;
/// Can be set by the caller to flag the intent as not being launched directly
/// by the user.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_FROM_BACKGROUND.
static const int FLAG_FROM_BACKGROUND = 4;
/// Will persist the URI permision across device reboots.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_GRANT_PERSISTABLE_URI_PERMISSION.
static const int FLAG_GRANT_PERSISTABLE_URI_PERMISSION = 64;
/// Applies the URI permission grant based on prefix matching.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_GRANT_PREFIX_URI_PERMISSION.
static const int FLAG_GRANT_PREFIX_URI_PERMISSION = 128;
/// Grants the intent listener permission to read extra data from the Intent's
/// URI.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_GRANT_READ_URI_PERMISSION.
static const int FLAG_GRANT_READ_URI_PERMISSION = 1;
/// Grants the intent listener permission to write extra data from the
/// Intent's URI.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_GRANT_WRITE_URI_PERMISSION.
static const int FLAG_GRANT_WRITE_URI_PERMISSION = 2;
/// Always matches stopped components. This is the default behavior.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_INCLUDE_STOPPED_PACKAGES.
static const int FLAG_INCLUDE_STOPPED_PACKAGES = 32;
/// Allows the listener to run at a high priority.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_RECEIVER_FOREGROUND.
static const int FLAG_RECEIVER_FOREGROUND = 268435456;
/// Doesn't allow listeners to cancel the broadcast.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_RECEIVER_NO_ABORT.
static const int FLAG_RECEIVER_NO_ABORT = 134217728;
/// Only allows registered receivers to listen for the intent.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_RECEIVER_REGISTERED_ONLY.
static const int FLAG_RECEIVER_REGISTERED_ONLY = 1073741824;
/// Will drop any pending broadcasts of this intent in favor of the newest
/// one.
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_RECEIVER_REPLACE_PENDING.
static const int FLAG_RECEIVER_REPLACE_PENDING = 536870912;
/// Instant Apps will be able to listen for the intent (not the default
/// behavior).
///
/// See https://developer.android.com/reference/android/content/Intent.html#FLAG_RECEIVER_VISIBLE_TO_INSTANT_APPS.
static const int FLAG_RECEIVER_VISIBLE_TO_INSTANT_APPS = 2097152;
}